Ceci est une ancienne révision du document !


Disque plein - Supprimer les noyaux inutiles

Il arrive encore trop fréquemment que les mises à jour du noyau se fasse sans supprimer les noyaux trop anciens déjà installés. Cela peut occuper finalement quelques précieux Go sur votre disque dur et un message vous avertit alors que l'espace disque devient faible sur la partition racine (/) ou de boot (/boot).

Voyons d'abord combien de noyaux sont installés. Dans l'idéal, il ne devrait y en avoir que deux : l'actuel et le précédent (au cas où le dernier installé créerait des problèmes).

ls /boot

La réponse est du type :

abi-4.4.0-101-generic         initrd.img-4.4.0-109-generic
abi-4.4.0-103-generic         memtest86+.bin
abi-4.4.0-104-generic         memtest86+.elf
abi-4.4.0-109-generic         memtest86+_multiboot.bin
config-4.4.0-101-generic      System.map-4.4.0-101-generic
config-4.4.0-103-generic      System.map-4.4.0-103-generic
config-4.4.0-104-generic      System.map-4.4.0-104-generic
config-4.4.0-109-generic      System.map-4.4.0-109-generic
grub                          vmlinuz-4.4.0-101-generic
initrd.img-4.4.0-101-generic  vmlinuz-4.4.0-103-generic
initrd.img-4.4.0-103-generic  vmlinuz-4.4.0-104-generic
initrd.img-4.4.0-104-generic  vmlinuz-4.4.0-109-generic

Il y a donc ici 4 noyaux installés, tous de la version 4.4.0, numérotés 101, 103, 104 et 109. Il y en a donc 2 en trop.

Vérifions d'abord quelle est le noyau en cours d'utilisation :

uname -r

La réponse est normalement 4.4.0-109-generic au vu de l'affichage précédent.

De combien d'espace disque dispose-t-on ? Utilisez la commande df -h et regardez l'espace disponible sur / (ou sur /boot). Vous pouvez obtenir ces mêmes résultats en Mo avec df -m.

Tentez un :

apt autoremove

qui supprime les paquets devenus inutiles. Si vous voyez que des paquets de noyaux vont être supprimés, vous avez gagné ! Enfin… sauf si tous les noyaux inutiles ne sont pas supprimés.

Recommencez le diagnostic précédent.

Si le diagnostic laisse apparaître qu'il reste des noyaux inutiles, c'est que leurs paquets ont été marqués comme ayant été installés manuellement (même si vous ne vous souvenez pas voir fait cela ; c'est un bug connu qui, paraît-il, est corrigé…)

Vérifions d'abord s'il existe des paquets de noyaux installés manuellement :

apt-mark showmanual | egrep 'linux-.*[0-9]' | egrep -v "hwe"

Si la réponse n'est pas vide, comme ci-dessous, c'est que vous avez été victime du bug !

linux-headers-4.4.0-101
linux-headers-4.4.0-101-generic
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-headers-4.4.0-109
linux-headers-4.4.0-109-generic
linux-image-4.4.0-101-generic
linux-image-4.4.0-103-generic
linux-image-4.4.0-104-generic
linux-image-4.4.0-109-generic
linux-image-extra-4.4.0-101-generic
linux-image-extra-4.4.0-103-generic
linux-image-extra-4.4.0-104-generic
linux-image-extra-4.4.0-109-generic

Faisons en sorte que ces paquets redeviennent déclarés comme installés automatiquement :

sudo apt-mark auto $(apt-mark showmanual | egrep 'linux-.*[0-9]' | grep -v "hwe")

Cela se fait rapidement :

linux-headers-4.4.0-101 passé en « installé automatiquement ».
linux-headers-4.4.0-101-generic passé en « installé automatiquement ».
linux-headers-4.4.0-103 passé en « installé automatiquement ».
linux-headers-4.4.0-103-generic passé en « installé automatiquement ».
linux-headers-4.4.0-104 passé en « installé automatiquement ».
linux-headers-4.4.0-104-generic passé en « installé automatiquement ».
linux-headers-4.4.0-109 passé en « installé automatiquement ».
linux-headers-4.4.0-109-generic passé en « installé automatiquement ».
linux-image-4.4.0-101-generic passé en « installé automatiquement ».
linux-image-4.4.0-103-generic passé en « installé automatiquement ».
linux-image-4.4.0-104-generic passé en « installé automatiquement ».
linux-image-4.4.0-109-generic passé en « installé automatiquement ».
linux-image-extra-4.4.0-101-generic passé en « installé automatiquement ».
linux-image-extra-4.4.0-103-generic passé en « installé automatiquement ».
linux-image-extra-4.4.0-104-generic passé en « installé automatiquement ».
linux-image-extra-4.4.0-109-generic passé en « installé automatiquement ».

Puis relançons la commande :

apt autoremove

Voici ce qui vous est proposé :

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  linux-headers-4.4.0-101 linux-headers-4.4.0-101-generic
  linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic
  linux-image-4.4.0-101-generic linux-image-4.4.0-103-generic
  linux-image-extra-4.4.0-101-generic linux-image-extra-4.4.0-103-generic
0 mis à jour, 0 nouvellement installés, 8 à enlever et 13 non mis à jour.
Après cette opération, 596 Mo d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n]

Remarquez qu'ici seuls les noyaux n°101 et n°103 seront enlevés, laissant bien installés le dernier et l'avant-dernier noyaux.

Après validation, le nettoyage s'effectue (cela peut être long s'il y a beaucoup de paquets à supprimer) et seuls deux paquets restent à la fin. Un ls /boot le confirme.

abi-4.4.0-104-generic         memtest86+.bin
abi-4.4.0-109-generic         memtest86+.elf
config-4.4.0-104-generic      memtest86+_multiboot.bin
config-4.4.0-109-generic      System.map-4.4.0-104-generic
grub                          System.map-4.4.0-109-generic
initrd.img-4.4.0-104-generic  vmlinuz-4.4.0-104-generic
initrd.img-4.4.0-109-generic  vmlinuz-4.4.0-109-generic

Vous pouvez estimer la place que vous avez récupérée avec un nouveau df -h ou df -m. Appréciable, non ?

  • linuxaddict/reparer/disqueplein.1516714310.txt.gz
  • Dernière modification : 23/01/2018, 14:31
  • de Claude Clerc