Auf mehreren Ubuntu-Computern stehe ich ständig vor dem Problem einer vollständigen Boot-Partition, obwohl ich immer alle alten Kernel entferne. Das Problem scheint aufzutreten, da sich viele initrd
Dateien auf der Boot-Partition befinden, obwohl die zugehörigen Kernel nicht tatsächlich installiert sind. Um im Beispiel zu geben:
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
Es werden jedoch nur Linux-Image-4.4.0-104-generic und Linux-Image-4.4.0-109-generic installiert:
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
Wenn ich die unnötigen initrd-Dateien manuell lösche, werden sie erneut generiert, sobald ich versuche, ein Upgrade durchzuführen.
Was könnte die Ursache für dieses Problem sein und wie kann ich diese Dateien dauerhaft entfernen?
boot
grub2
partitioning
kernel
user5950
quelle
quelle
apt-get autoremove
.Antworten:
Sie sollten teilweise entfernte Kernel mit überprüfen
und entfernen Sie sie zum Beispiel mit
sudo apt-get purge linux-image-4.4.0-101-generic
.Durch das Löschen werden die Generierungsregeln für initramfs entfernt
/var/lib/initramfs-tools/
.Wenn dies nicht hilft, können Sie sie manuell aus der initramfs-Liste entfernen:
Normalerweise laufe ich
purge-old-kernels
gefolgt vonsudo apt-get autoremove
nur 2 aktuellen Kerneln.Sie können installierte Kernel mit ihren initramfses neu installieren:
quelle
initrd
Dateien aus dem Boot noch einmal manuell entfernen, um dort Speicherplatz freizugeben, und das Voilà-Problem wurde gelöst! Vielen Dank!rm
für alles zu verwenden, was aninitrd
Kernel oder Header weitergeleitet wird. Es stehen einige Befehle zur Verfügung, mit denen Sie teilweise entfernte Kernel- / Header- / initrd.img-Dateien entfernen können. Sieheupdate-initramfs
. Siehe meine Antwort unten für weitere Details.Wenn Sie
dpkg
die Kernel / Header bereits gelöscht habendpkg -l
und die dort installierten Kernel / Header bereits überprüft haben und immer noch nicht sehen, aber weiterhin Verweise auf diese alten Kernel in/boot
Form voninitrd-img
Dateien sehen, dann ist dies der richtige Weg Das Löschen dieser Referenzen und Dateien erfolgt mit demupdate-initramfs
Befehl.Zum Beispiel, wenn Sie nur
4.4.0-109
installiert haben, aber dennoch Folgendes sehen/boot
:Sie können sicher entfernen
4.4.0-104
und4.4.0-103
aus/boot
mit den folgenden Befehlen:Die ersten beiden Befehle löschen die Verweise auf diese Kernel in den
initramfs
Generierungsregeln sowie die Dateien in/boot
. Der letzte Befehl weist initramfs an, dieinitrd.img
Dateien basierend auf den aktualisierten Regeln neu zu generieren.Theoretisch könnte man auch verwenden
mehrere Kernel gleichzeitig zu löschen, aber aus irgendeinem Grund hat dies bei mir nicht funktioniert.
quelle