[WattOS] Deux commandes magiques pour supprimer les vieux noyaux
WattOS est une petite distribution dérivée d’Ubuntu qu’on peut décrire comme une Lubuntu très légère. WattOS est basée sur Xenial (Ubuntu 16.04 LTS) mais j’y ai retrouvé les problèmes d’accumulation des noyaux comme il y a quelques années.
NB : ce problème est dû à la non utilisation de la commande apt autoremove
, tout simplement.
Pourquoi WattOS ?
WattOS dans sa version R10 est une Ubuntu Xenial (Ubuntu 16.04 LTS) qui est basée sur le noyau Linux 4.4.0 et qui très allégée. Comme Lubuntu, elle propose le bureau LXDE qui est simple et facile à utiliser.
WattOS R10 s’installe bien et tourne bien sur un vieil ordinateur de 2001 (processeur Athlon XP 1900+ [1600MHZ rééls]), 500Mo de Ram et une carte graphique Nvidia 6200. Évidemment, Firefox 60 ne fonctionne pas sur les ordinateurs plus anciens que les Pentium IV, donc pas de Firefox, qui serait de toutes façons trop lourd, même en version ESR.
Pour rendre WattOS plus légère sur un Pentium IV de 2004, j’ai supprimé les mises à jour automatiques graphiques. Je ne m’attendais pas à ce que les vieilles versions du noyau s’accumulent comme par le passé.
En attendant de revoir si mes modifications empêchent la suppression automatique des vieux noyaux, voici un complément à l’article Une seule commande pour supprimer les anciens noyaux de Lubuntu.
Le noyau LTS
WattOS est basé sur la version 16.04.0. Au contraire, si vous avez installé Lubuntu bien après la sortie de Xenial, vous avez peut-être la version 16.04.1, ce qui veut dire que vous avez un noyau plus récent.
Quel que soit le noyau de départ, la version LTS reste sur ce noyau, pour WattOS, c’est le noyau 4.4.0. Mais il existe des versions intermédiaires. Fin mai 2018, Ubuntu 16.4.0 en est au noyau Linux 4.4.0-127.
Les versions intermédiaires se succèdent très rapidement. Chaque version pèse 200Mo et au bout d’un an une partition /
(partition où est installé le système) de 7.3Go est remplie. Quand la partition est remplie ou presque remplie, le système ne peut plus fonctionner normalement.
Apt autoremove
En principe, après avoir fait votre mise à jour par la ligne de commande, la commande sudo apt autoremove
doit supprimer les anciennes versions du noyau. Évidemment, il faut taper et exécuter cette commande. Lors des mises à jour APT vous signale, quand c’est nécessaire, que la commande doit être faite. Lisez bien ce qu’affiche le terminal quand vous faites vos mises à jour.
Si vous voyez que la commande sudo apt autoremove --purge
ne supprime jamais les vieilles versions du noyau (par exemple, linux-image-4.4.0-119), il faut alors passer par des commandes magiques.
Commandes magiques pour supprimer les vieilles versions du noyau
Si le bureau fonctionne encore
Si votre partition n’est pas tout à fait pleine, votre bureau LXDE s’affiche encore. Vous pouvez alors vous rapporter à l’article Une seule commande pour supprimer les anciens noyaux de Lubuntu.
Rappel des commandes :
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | grep -E "(image|headers)" | xargs sudo apt --dry-run remove
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | grep -E "(image|headers)" | xargs sudo apt -y purge
Si le bureau est inaccessible
Dans certains cas, il se peut que vous soyez bloqué à l’écran de login même si vous aviez activé l’auto-login, (l’accès au bureau sans passer par l’écran de login où vous devez voyez sans doute votre nom d’utilisateur et où vous devez taper votre mot de passe).
Même en quittant l’écran de login pour aller dans le terminal (Ctrl-Alt-F1), vous ne pouvez pas démarrer la session graphique avec la commande startx
car le terminal vous répond “Server error”. Impossible d’aller sur le bureau car le serveur graphique ne peut pas démarrer.
De plus, il se peut que, même en restant dans ce terminal, la commande indiquée dans Une seule commande pour supprimer les anciens noyaux de Lubuntu, qui finit par utiliser APT, ne fonctionne plus.
Il se peut aussi qu’APT soit bloqué parce qu’un paquet nécessaire au noyau ne peut pas s’installer, faute de place, et APT vous indique qu’une dépendance ne peut pas être résolue. Tout est bloqué.
Mais non, il y a toujours une solution, en l’occurrence l’outil DPKG.
DPKG à la rescousse
Voici donc les commandes magiques pour supprimer les vieux noyaux, d’abord la commande qui simule l’action, puis la commande qui supprime réellement les vieux noyaux. Au lieu d’utiliser APT, on utilise DPKG, c’est tout bête :
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | grep -E "(image|headers)" | xargs sudo dpkg --dry-run --remove
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | grep -E "(image|headers)" | xargs sudo dpkg --purge
Sur le terminal, hors du bureau, vous ne pouvez pas faire de copier-coller, il faut donc taper la première commande à la main. Pour la deuxième, il suffit de rappeler la première avec la touche de direction Haut
et de supprimer --dry-run
.
La suite du nettoyage
À présent, la commande df -h
doit vous indiquer que vous avez récupéré bien de la place sur la partition /
(qui est souvent /dev/sda1
mais pas obligatoirement).
Voici les autres commandes utiles pour finir le nettoyage :
sudo apt clean
sudo apt autoremove
Mettre à jour le système
Maintenant, il reste à mettre à jour le système :
sudo apt update && sudo apt full-upgrade
S’il y a des mises à jour, apt clean
et peut-être apt autoremove
seront nécessaires.
En enfin on relance le système
Vous pouvez maintenant redémarrer l’ordinateur avec la commande :
sudo reboot
Vous pourrez vérifier la version de votre nouveau noyau avec la commande :
uname -r
Vous pouvez aussi afficher plus de détails avec la commande :
uname -a
Gardez les commandes magiques sous le coude
Gardez ces commandes de suppression des vieux noyaux sous le coude en les copiant dans un fichier, intitulé par exemple com-magic
, en y incluant toutes les instructions nécessaires :
- Vous pouvez afficher ce fichier dans le terminal, hors du serveur graphique (hors de votre bureau LXDE), avec la commande
cat com-magic
et recopier le contenu. - Vous devriez aussi imprimer ce fichier.
Nettoyage régulier des noyaux
Il faut supprimer les noyaux inutiles régulièrement pour éviter que votre partition /
se remplisse de nouveau. Faites le tous les 15 jours ou toutes les 3 semaines.
Depuis le terminal sur le bureau (c’est un programme qui simule un terminal), c’est très rapide à faire :
- Copier-coller la première commande qui contient
--dry-run
- Puis les fois suivantes, vous rappelez les commandes avec une touche de direction
Donc, évitez le remplissage intégral pour éviter de travailler sur le vrai terminal, hors du serveur graphique. C’est certes très efficace mais plus fastidieux.
Et pour finir, bonne chasse aux noyaux