Supprimer les anciens noyaux : gagner de la place et alléger Grub
Cet article a été publié par Benjamin
le 06-02-11 à 11:04 dans la catégorie Trucs - Astuces
Tags :
- Libre
- TrucsAstuces
- Tutoriel
- Ubuntu
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 !
Commentaires
Ubuntu étant axé sur la facilité d'utilisation, on peut aussi utiliser Système>Administration>Nettoyage du système , un utilitaire graphique qui fait tout ce qui est expliqué dans ce billet et plus encore.
Ubuntu Tweak le fait très bien et très simplement en mode graphique
En tout cas, merci pour cette astuce très utile ;)
oui et entre Système>Administration>Nettoyage du système et la ligne de commande
il y a Système>Administration>Gestionnaire de paquet synaptic
pourquoi rédiger un article avec que des ligne de commande, n'oubliez pas que c'est la hantise des débutants
qui aime bien les interfaces graphiques
Perso je suis bien content de lire cette astuce.
Elle va me permettre de nettoyer mon serveur, qui n'a bien évidemment pas d'interface graphique.
Merci airvb (et Mgnet), je commençais à perdre espoir :)
Je comprends que la ligne de commandes est un peu rédhibitoire pour les débutants mais elle est indispensables pour d'autres utilisateurs. Et entre nous, les débutants s'en fichent pas mal de savoir comment supprimer les anciens noyaux...
Et non fanfantasy7, c'est pas parce que la ligne de commandes rebute les débutants que je ne vais plus faire d'article dessus, il faut arrêter avec cette obsession du tout graphique.
Je ne connaissais pas cet outil "Nettoyage du système", mais je n'y ai pas vu la possibilité de supprimer les anciens noyaux avec celui-ci. J'ai peut être mal regardé. faut dire qu'on s'y perd dans toutes ces interfaces graphiques ;)
les débutants s'en foute, mais ça prend de la place pour rien et a long terme le disque dur sera plein, et le débutant ne sera pas pourquoi
deplus si l'interface graphique "nettoyage" à été intégré à ubuntu, c'est qu'il y a de la demande, il est pas arrivé pour rien
je ne retrouve plus, mais je sais que quelqu'un à dit "tous ce que l'on fait en ligne de commande est un bug à corriger"
J'avoue avoir plusieurs fois regarder dans l'outil "Nettoyage du systeme", mais il est continuellement vide (bien que j'avais de nombreux noyau d'installer).
Donc pour résumer, merci pour l'astuce qui m'a été bien pratique.
Une ligne de commande que j'ai trouvé sur le site http://www.commandlinefu.com/ fait tout çà automatiquement. Elle ne garde que le dernier noyau, mais une fois que la mise à jour du noyau est installé et que tout fonctionne correctement, pourquoi garder d'autres fichiers inutiles ?
Vous avez juste à copier /coller la commande dans un terminal et regarder travailler dpkg. Grub est aussi mis à jour. Trouver cette commande ici : http://www.commandlinefu.com/comman...
J'utilise aussi Fedora qui supprime automatiquement le kernel le plus ancien, en gardant 3 noyaux par sécurité, à l'occasion d'une mise à jour. Pourquoi pas le même système pour Ubuntu ?
Moi aussi j'utilise Ubuntu-Tweak.
Quand ça m'arrive d'installer/reinstaller Ubuntu, c'est le premier programme que j'ajoute.
Après chaque mise à jour du noyau, je redémarre sur le nouveau noyau et, si tout marche, je lance UT et nettoie l'ancien.
Bonjour,
On peu aussi faire ça avec Application/Logithèque Ubuntu.
Mais habituellement j'utilise synaptic.
@fanfantasy7 : quelqu'un à dit "tous ce que l'on fait en ligne de commande est un bug à corriger"
Quelqu'un as aussi dit qu'on devait envoyer tout les juifs dans des camps pour les exterminer.
Bravo, tu as gagné un point Godwin \o/
Sinon pour supprimer les anciens noyaux par l'interface graphique (nettoyage système ou synaptic) bah moi ça le fait pas.
Qui a tenté la commande sur commandelinefu? (alléchante mais un peu flippante avec cette regexp de dingue)
Pour ma part j'utilise depuis longtemps le script de Hoper, trouvé dans le forum:
http://forum.ubuntu-fr.org/viewtopic.php?id=242358&p=1
Aucun problème de fonctionnement, mais n'effacer les "vieux" kernels qu'après un temps d'usage du nouveau, pour s'assurer de ne pas se trouver "planté" sans la solution de downgradage au démarrage...
J'ai bien aimé cette astuce en ligne de commande, car bien que débutant, les outils style "Nettoyage du système" semblent bien confus à côté !... Thanks
Pour les rageux contre la ligne de commande, c'est marrant mais les solutions graphiques n'existent plus, par contre la solution ligne de commande fonctionne toujours ;-p (manque juste quelques paquets)