web-dev-qa-db-fra.com

Pourquoi les anciens fichiers initrd des noyaux désinstallés remplissent-ils la partition / boot?

Sur plusieurs machines Ubuntu, je suis constamment confronté au problème de la partition de démarrage complète, même si je supprime toujours tous les anciens noyaux. Le problème semble se produire car de nombreux fichiers initrd se trouvent sur la partition de démarrage, même si les noyaux associés ne sont pas réellement installés. Pour donner en exemple:

root@Jacobi:/boot# ls -lah
insgesamt 202M
drwxr-xr-x  3 root root 3,0K Jan 30 10:03 .
drwxr-xr-x 25 root root 4,0K Jan 30 10:03 ..
-rw-r--r--  1 root root 1,2M Dez 11 15:36 abi-4.4.0-104-generic
-rw-r--r--  1 root root 1,2M Jan  9 22:28 abi-4.4.0-109-generic
-rw-r--r--  1 root root 1,2M Jan 19 14:06 abi-4.4.0-112-generic
-rw-r--r--  1 root root 187K Dez 11 15:36 config-4.4.0-104-generic
-rw-r--r--  1 root root 187K Jan  9 22:28 config-4.4.0-109-generic
-rw-r--r--  1 root root 187K Jan 19 14:06 config-4.4.0-112-generic
drwxr-xr-x  5 root root 1,0K Jan 30 10:03 grub
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-3.13.0-39-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-101-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-103-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-104-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-109-generic
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-4.4.0-38-generic
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-4.4.0-45-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-59-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-77-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-78-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-81-generic
-rw-r--r--  1 root root 179K Jan 28  2016 memtest86+.bin
-rw-r--r--  1 root root 181K Jan 28  2016 memtest86+.elf
-rw-r--r--  1 root root 181K Jan 28  2016 memtest86+_multiboot.bin
-rw-------  1 root root 3,8M Dez 11 15:36 System.map-4.4.0-104-generic
-rw-------  1 root root 3,8M Jan  9 22:28 System.map-4.4.0-109-generic
-rw-------  1 root root 3,8M Jan 19 14:06 System.map-4.4.0-112-generic
-rw-------  1 root root 6,8M Dez 11 15:36 vmlinuz-4.4.0-104-generic
-rw-------  1 root root 6,8M Jan  9 22:28 vmlinuz-4.4.0-109-generic
-rw-------  1 root root 6,8M Jan 19 14:06 vmlinuz-4.4.0-112-generic

Mais seuls linux-image-4.4.0-104-generic et linux-image-4.4.0-109-generic sont installés:

root@Jacobi:/boot# dpkg -l linux-image-\* | grep ^ii
ii  linux-image-4.4.0-104-generic       4.4.0-104.127 AMD64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-109-generic       4.4.0-109.132 AMD64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-104-generic 4.4.0-104.127 AMD64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-109-generic 4.4.0-109.132 AMD64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

Si je supprime manuellement les fichiers initrd inutiles, ils seront générés à nouveau dès que j'essaie de faire une mise à niveau.

Quelle pourrait être la cause de ce problème et comment puis-je me débarrasser de ces fichiers de manière permanente?

11
user5950

Vous devriez vérifier les noyaux partiellement retirés avec

dpkg -l linux-image-\* | grep ^rc

et supprimez-les avec par exemple Sudo apt-get purge linux-image-4.4.0-101-generic.

La purge supprimera les règles de génération initramfs de /var/lib/initramfs-tools/.

Si cela ne vous aide pas, vous pouvez les supprimer manuellement de la liste initramfs:

Sudo rm /var/lib/initramfs-tools/3.13.0-39-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-101-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-103-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-38-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-45-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-59-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-77-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-78-generic
Sudo rm /var/lib/initramfs-tools/4.4.0-81-generic

D'habitude, je lance purge-old-kernels suivi de Sudo apt-get autoremove pour n'avoir que 2 noyaux récents.

Vous pouvez réinstaller les noyaux installés avec leurs initramfses:

Sudo apt-get install --reinstall \
$(dpkg -l linux-image-\* | grep ^ii | awk '{print $2}')
11
N0rbert