Les mises à jour régulières d’un système Ubuntu met également à niveau le kernel dans sa dernière version disponible. Avec les années, ces kernels s’additionnent et prennent inutilement de l’espace disque, sans compter que l’on ne reviendra jamais sur dix noyaux en arrière. Il s’agit là d’une opération de maintenance à réaliser par un administrateur système en charge du parc Linux mais cette solution peut aussi corriger un problème d’upgrade en version supérieure Ubuntu, si par exemple il manque de la place dans la partition /boot.
Ce tutoriel explique comment faire le ménage dans les kernels obsolètes et inutiles d’un serveur ou d’une machine Ubuntu. Cette distribution Linux est la plus populaire sur desktop mais de nombreux serveurs utilisent également cet OS, dans sa version minimal pour ne fournir qu’une ligne de commande comme action à réaliser.
Cette action de maintenance étant très délicate, il est évidemment recommander de sauvegarder l’ensemble du serveur, du poste ou de la machine virtuelle avant de procéder à la suppression d’un noyau Linux. Une mauvaise manipulation et le système Ubuntu ne démarrera plus du tout.
Afficher tous les kernels Ubuntu
1. Ouvrir un Terminal en local ou une connexion SSH distante.
2. La commande suivante va lister tous les kernels disponibles sur le système Ubuntu :
dpkg -l | grep -Ei "linux-headers|linux-image"
3. Le résultat peut afficher de nombreuses versions différentes. Chaque kernel a des « linux-headers » et une « linux-image » suivis du numéro de version. A chaque fois, on retrouve linux-headers-x.x.x-x, linux-image-x.x.x-x et linux-image-extra-x.x.x-x.
Suppression automatique des vieux kernels Ubuntu
La commande suivante va automatiquement supprimer les kernels obsolètes d’Ubuntu et ne conserver que les deux derniers : le plus récent qui est utilisé par le système d’exploitation et la version n-1 au cas où il faudrait basculer dessus, en cas d’erreur avec la dernière version.
sudo apt-get autoremove
Supprimer à la main des kernels obsolètes Ubuntu
Puisque la fonction automatique peut ne pas être efficace ou ne plaira pas à l’admin barbu que vous êtes, il existe une méthode manuelle pour effacer les anciens noyaux Ubuntu.
1. Se connecter en SSH ou par une console locale.
2. Vérifier le kernel actuellement utilisé :
uname -r
3. Liste les kernels disponibles :
dpkg -l | grep -Ei "linux-headers|linux-image"
4. Pour chaque version, on trouve une ligne « linux-headers » et « linux-image » qu’il faudra supprimer. Utiliser la commande suivante en l’adaptant à chaque version de kernel à supprimer.
sudo apt-get remove --purge linux-headers-3.5.0-51-generic linux-image-3.5.0-51-generic linux-image-extra-3.5.0-51-generic
5. Valider la suppression en conformant par « o » (oui) pour effacer le kernel obsolète.
6. Relister les kernels par un dpkg pour vérifier la purge des linux-headers, linux-image et linux-image-extra.
7. Refaire l’opération pour chaque kernel à supprimer et ne conserver que les deux versions les plus récentes.
8. On récupère également de l’espace disque sur la partition principale et dans /boot.