J'ai mis à jour le noyau de nos serveurs Ubuntu depuis qu'ils ont publié un correctif pour la vulnérabilité Meltdown. J'ai remarqué qu'à peu près sur tous les serveurs, après le redémarrage, je dois exécuter apt autoremove
deux fois pour qu'il nettoie tous les anciens noyaux qui sont encore sur le système.
Si je l'exécute la première fois, il supprime d'abord deux anciennes versions du noyau :
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic linux-image-4.4.0-103-generic linux-image-4.4.0-104-generic
linux-image-extra-4.4.0-103-generic linux-image-extra-4.4.0-104-generic
0 upgraded, 0 newly installed, 8 to remove and 2 not upgraded.
After this operation, 596 MB disk space will be freed.
Mais ensuite, une fois que c'est fait et que je lance apt autoremove
encore une fois, il supprime encore une version plus ancienne :
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-96 linux-headers-4.4.0-96-generic linux-image-4.4.0-96-generic linux-image-extra-4.4.0-96-generic
0 upgraded, 0 newly installed, 4 to remove and 2 not upgraded.
After this operation, 298 MB disk space will be freed.
Je me demande pourquoi cela ne peut-il pas le faire en une seule fois ?
Réponse acceptée :
Les scripts du responsable du noyau, en particulier /etc/kernel/postinst.d/apt-auto-removal
, créez une liste de noyaux à conserver, stockée en tant que configuration APT dans /etc/apt/apt.conf.d/01autoremove-kernels
. Ce processus conserve le noyau en cours d'exécution, le noyau en cours de configuration et les deux derniers noyaux installés.
Probablement la dernière fois que le script a été exécuté avant votre premier nettoyage, -96
a fini par être protégé parce qu'il appartenait à l'une de ces catégories. Après votre premier nettoyage, il n'a plus fonctionné et est devenu un candidat pour le retrait. Si vous voulez comprendre pourquoi , les 01autoremove-kernels
le fichier contient des informations de débogage ; le regarder avant le premier nettoyage, et encore après, devrait révéler pourquoi différentes versions du noyau sont protégées.
La suppression automatique du noyau est délibérément conservatrice et pèche par excès de prudence. Vous pouvez gérer cela automatiquement (éventuellement) à l'aide de unattended-upgrades
; voir le wiki Ubuntu pour plus de détails.