Voici un tutoriel qui vous permet de supprimer les kernels linux installés sur votre serveur qui ne sont pas actuellement utilisés.
Cela est utile pour faire un peu de ménage sur la partition /boot, idéalement avant qu’elle ne soit complètement saturée. Sinon, je vous donne aussi l’astuce pour faire le ménage manuellement et retrouver APT complètement opérationnel.
Ce tutoriel a été testé sous Ubuntu Server 18.04 LTS, il est complètement transférable sous Ubuntu et Debian.
Cas de figure 1: /boot n’est pas plein à 100% et apt est opérationnel
1. On vérifie la version actuelle du kernel
uname -r
Cela nous donne la version du noyau sous laquelle tourne notre machine:
4.15.0-46-generic
Code language: CSS (css)
2. On supprime les vieux kernels
2.a. On liste les vieux kernels
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
Code language: JavaScript (javascript)
You will get the list of images something like below:
linux-image-4.15.0-45-generic
Code language: CSS (css)
2.b. On supprime les vieux kernels (un par un)
sudo apt purge linux-image-4.15.0-45-generic
Code language: CSS (css)
Une fois que les vieux kernels sont supprimés, on supprime également les paquets qui seront maintenant obsolètes:
sudo apt autoremove
Et on finit par la mise à jour de la liste des noyaux de GRUB:
sudo update-grub
Voilà, il ne vous reste plus qu’à rebooter votre machine ou votre serveur. Il ne reste que le dernier kernel.
Cas de figure 2 : apt est indisponible car /boot est plein à 100%
NOTE: cette partie du tutoriel n’est valable que si et seulement si vous ne pouvez utiliser APT parce que la partition /boot est pleine à 100%.
1. Listez les images de kernel
Obtenez la liste des images de kernels et faites la liste des kernels que vous pouvez supprimer car ils ne sont plus utilisés. Cette commande vous montre les kernels installés à l’exception de celui qui est en cours d’utilisation:
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
Code language: JavaScript (javascript)
Voici le résultat de la commande, la liste des kernels installés mais inutilisés:
linux-image-3.19.0-59-generic
linux-image-3.19.0-61-generic
linux-image-3.19.0-65-generic
linux-image-extra-3.19.0-59-generic
linux-image-extra-3.19.0-61-generic
linux-image-extra-3.19.0-65-generic
Code language: CSS (css)
2. Préparez la suppression
Vous devez préparer la commande qui va supprimer tous les kernels inutilisés en utilisant la brace expansion pour vous simplifier la vie. Je vous conseille d’écrire la commande dans un éditeur de texte et de bien la vérifier avant de la lancer dans le terminal.
N’oubliez pas d’exclure le kernel actuel ainsi que les deux kernels les plus récents pour pallier tout problème:
sudo rm -rf /boot/*-3.19.0-{59,61,65}-*
3. Nettoyez APT et ses messages d’avertissement à propos d’une installation partielle
sudo apt-get -f install
Code language: JavaScript (javascript)
4. Autoremove
Enfin, on lance la commande autoremove pour supprimer les paquets relatifs aux vieilles images de kernel qui ont été rendues orphelines par le nettoyage manuel de /boot :
sudo apt autoremove
5. Mise à jour de GRUB
sudo update-grub
6. APT est opérationnel
Vous pouvez de nouveau utiliser APT et mettre à jour, installer et supprimer les paquets de votre distribution:
sudo apt update