Supprimer les anciens noyaux : gagner de la place et alléger Grub

Publié le 06 février 2011 par Pach

J'utilise la version 10.04 LTS d'Ubuntu depuis sa sortie, ça fait donc presque un an. Au fil des mises à jour, des nouveaux noyaux sont installés, rendant obsolètes les anciens. Le problème, c'est qu'à chaque nouveau noyau, ça fait 2 lignes supplémentaires dans la liste du Grub au démarrage de la machine.

D'habitude (avec les anciennes version d'Ubuntu, et donc de Grub), je modifiais juste le fichier de conf du Grub (/boot/grub/menu.lst) pour effacer de la liste les anciens noyaux. C'est une mauvaise solution et c'est plus compliqué à faire avec la nouvelle version de Grub. J'ai donc décidé de faire les choses correctement : supprimer les anciens noyaux. Je gagne ainsi de la place sur mon disque dur et dans ma liste de Grub.

I. Connaitre les noyaux installés

Nous allons commencer par regarder les noyaux qui sont installés sur notre machine. Pour cela, on utilise la commande suivante :

sudo dpkg -l | grep linux

Cela nous affiche tous les paquets installés sur notre machine contenant le mot "linux". Dans cette liste, ce sont ces entrées qui nous intéressent :

ii  linux-headers-2.6.32-25   2.6.32-25.45   Header files related to Linux kernel version
ii  linux-headers-2.6.32-25-generic   2.6.32-25.45   Linux kernel headers for version 2.6.32 on x
ii  linux-headers-2.6.32-26   2.6.32-26.48   Header files related to Linux kernel version
ii  linux-headers-2.6.32-26-generic   2.6.32-26.48   Linux kernel headers for version 2.6.32 on x
ii  linux-headers-2.6.32-27   2.6.32-27.49   Header files related to Linux kernel version
ii  linux-headers-2.6.32-27-generic   2.6.32-27.49   Linux kernel headers for version 2.6.32 on x
ii  linux-headers-2.6.32-28   2.6.32-28.55   Header files related to Linux kernel version
ii  linux-headers-2.6.32-28-generic   2.6.32-28.55   Linux kernel headers for version 2.6.32 on x
ii  linux-headers-generic   2.6.32.28.32   Generic Linux kernel headers
ii  linux-image-2.6.32-25-generic   2.6.32-25.45   Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-26-generic   2.6.32-26.48   Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-27-generic   2.6.32-27.49   Linux kernel image for version 2.6.32 on x86
ii  linux-image-2.6.32-28-generic   2.6.32-28.55   Linux kernel image for version 2.6.32 on x86

Dans mon exemple, on voit que mon noyau actuel (le plus récent) est le 2.6.32-28 et que j'ai 3 vieux noyaux, les -25, -26 et -27 (j'ai déjà fait le ménage dans ma liste, hier, j'avais jusqu'au -21).

II. Supprimer les noyaux obsolètes

Avant tout, une petite mise en garde s'impose, cette opération n'est pas anodine, attention à ce que vous faites, ne supprimez pas n'importe quoi ;)


Ici, je vais supprimer le noyau 2.6.32-25.

Pour supprimer une version, j'exécute simplement cette commande :

sudo aptitude purge linux-headers-2.6.32-25 linux-headers-2.6.32-25-generic linux-image-2.6.32-25-generic

On voit qu'il n'y a que 3 fichiers à renseigner, le "linux-headers", "linux-headers-generic" et "linux-image-generic". Aptitude supprimera les dépendances qui sont devenues inutiles et lancera la commande de reconstruction du grub en supprimant ce noyau.

Je note que 185Mo seront libérés suite à cette suppression. J'ai supprimé de la sorte 6 anciens noyaux, soit un gain de 1,11Go !


Attention : Il est conseillé de conserver un ou deux noyaux précédent l'actuel. Par ailleurs, évitez de supprimer le noyau le plus récent ;)