mounthawk
Anmeldungsdatum: 19. Oktober 2013
Beiträge: Zähle...
|
Hallo, ich muss mich mit einer Frage an die Gemeinschaft wenden, da ich nicht weiterkomme und meine Recherche erfolglos war. Ich aktualisiere täglich mein Lubuntu 14.04 LTS mit der Aktualisierungsverwaltung. Die Kernel werden in eine /boot-Partition abgelegt, ebenso die initrd-img-Dateien. Bis vor kurzem fanden dort immer drei oder vier Kernelversionen incl. initrd-img-Dateien Platz. Wenn der Platz in /boot knapp wurde, habe ich alte Kernelversionen mit dem Befehl
gelöscht, also zum Beispiel
Den aktuellen und vorletzten Kernel habe ich stehen gelassen. So war genug Platz für Aktualisierungen des Kernels oder das Neuerzeugen der Kernelimages vorhanden. Jetzt habe ich das Problem, dass ich jedes Mal, wenn das Kernelimage neu erzeugt wird (und das passiert offenbar immer dann, wenn es Updates gibt, die den Kernel betreffen, also nicht nur bei komplett neuen Kernelversionen), die Operation scheitert. Die Ursache ist, dass /boot voll ist. Wenn ich mir das anschaue, so finde ich dort die Kernelimagedateien von früheren Kernelversionen: 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | abi-3.13.0-108-generic
config-3.13.0-108-generic
grub
initrd.img-3.13.0-101-generic
initrd.img-3.13.0-103-generic
initrd.img-3.13.0-105-generic
initrd.img-3.13.0-106-generic
initrd.img-3.13.0-108-generic
lost+found
memtest86+.bin
memtest86+.elf
memtest86+_multiboot.bin
System.map-3.13.0-108-generic
vmlinuz-3.13.0-108-generic
|
Wenn ich die alten Image-Dateien lösche, werden sie bei der nächsten den Kernel betreffenden Updateaktion wieder neu erzeugt. Wenn mehr Platz in /boot wäre, würden sogar noch ältere Versionen der Dateien erzeugt. Den *107* Kernel habe ich zuletzt mit
| apt-get purge linux-image-3.13.0-107-generic
|
entfernt. Auch nach dieser Aktion wurden alle oben zu sehenden Image-Dateien neu erzeugt. Ebenso nach dem Befehl:
Ist dies Verhalten bekannt? Und was kann ich tun, um es zu vermeiden, da ja so eine regelrecht Aktualisierungsverwaltung nicht mehr möglich ist. Danke für eure Hilfe.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21728
Wohnort: Lorchhausen im schönen Rheingau
|
Hallo, du möchtest den Artikel Kernel lesen
|
mounthawk
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2013
Beiträge: 17
|
Danke für den Hinweis, hilft mir aber nicht weiter. Warum werden seit neuestem die initramfs Images der alten Kernelversionen erzeugt? Und wie kann ich es vermeiden?
|
Into_the_Pit
Ehemalige
Anmeldungsdatum: 25. Juni 2008
Beiträge: 9490
Wohnort: Bochum
|
mounthawk schrieb: Danke für den Hinweis, hilft mir aber nicht weiter.
Halten wir einmal fest. Du entfernst willkürlich an Deiner Paketverwaltung vorbei irgendwelche Kernel im Verzeichnis /boot und wunderst Dich nun, warum Dein System komisch reagiert? Überleg mal, was da passiert. Deine Paketverwaltung geht noch davon aus, dass der Kernel vorhanden ist, da er ja nicht aus der Datenbank entfernt wurde. Da aber das initramfs nicht in /boot liegt, denkt sich Dein System halt "ok, dann bau ich das halt mit, wenn es nicht da ist.". Der Hinweis von redknight zielte darauf ab, dass Du in Zukunft bitte nicht händisch irgendwo rumfummelst und was löscht, dafür hast Du eine Paketverwaltung, die das sauber übernimmt. Und mit sauber mein ich, dass alles, was zum Kernel gehört, dabei entfernt wird.
|
robert-engel
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
mounthawk schrieb: Danke für den Hinweis, hilft mir aber nicht weiter.
Ich finde, da steht alles drin, was Du zu Deiner Problemlösung benötigst.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21728
Wohnort: Lorchhausen im schönen Rheingau
|
mounthawk schrieb: Danke für den Hinweis, hilft mir aber nicht weiter.
Dann hast Du den Artikel nicht ordentlich gelesen. Da steht nämlich drin, wie man kernel entfernt, so dass genau das bei dir nicht passiert. Warum werden seit neuestem die initramfs Images der alten Kernelversionen erzeugt?
Das hat Pit ausführlich dargelegt. Das ist ürbigens nicht erst "seit neuestem", sondern das normale Verhalten der Paketverwaltung Und wie kann ich es vermeiden?
indem du Kernel entfernst, wie im Wiki beschrieben.
|
mounthawk
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2013
Beiträge: 17
|
Danke für eure Beiträge. Ich habe mich mit dem Kernel Artikel auseinandergesetzt und versucht, die alten Kernelpakete zu entfernen. Es wurden mit dem Lauf des Scripts (s.u.) etliche Kernelpakete entfernt, zwischenzeitlich aber auch massenhaft initrd.img-* Dateien in /boot angelegt. Irgendwann war das Filesystem natürlich wieder voll. Das Script lief aber weiter und löschte tatsächlich die angelegten initrd.img-* Dateien wieder, so dass nur initrd.img-3.13.0-108-generic übrig blieb. Offenbar wurde aber etliche Pakete nicht sauber entfernt, nämlich die, für die zwischenzeitlich keine initrd.img-* Datei angelegt werden konnte. Ein
| sudo update-initramfs -uk all
|
generiert wieder etliche initrd.img-* Dateien, solange, bis /boot wieder voll ist.
vermeidet das. Damit wird nur das aktuelle image generiert. Ich habe versucht, die alten Kernelpakete mit
| dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
|
zu finden, so wie ich es im ersten Durchgang gemacht habe. Es werden aber kein mehr angezeigt. Nachdem ich noch einige Kernelpakete von Hand entfernt habe, sieht die Ausgabe mit dpkg jetzt so aus:
dpkg -l 'linux-[ihs]*'
||/ Name Version Architektur Beschreibung
+++-============================-===================-===================-==============================================================
un linux-headers <keine> <keine> (keine Beschreibung vorhanden)
un linux-headers-3.0 <keine> <keine> (keine Beschreibung vorhanden)
ii linux-headers-3.13.0-108 3.13.0-108.155 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-108-gen 3.13.0-108.155 i386 Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii linux-headers-generic 3.13.0.108.116 i386 Generic Linux kernel headers
un linux-image <keine> <keine> (keine Beschreibung vorhanden)
un linux-image-3.0 <keine> <keine> (keine Beschreibung vorhanden)
ii linux-image-3.13.0-108-gener 3.13.0-108.155 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-108 3.13.0-108.155 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SM
ii linux-image-generic 3.13.0.108.116 i386 Generic Linux kernel image
un linux-initramfs-tool <keine> <keine> (keine Beschreibung vorhanden)
ii linux-sound-base 1.0.25+dfsg-0ubuntu all base package for ALSA and OSS sound systems
un linux-source-3.13.0 <keine> <keine> (keine Beschreibung vorhanden) Es sind also offenbar keine alten Kernelpakete mehr vorhanden. Irgendwo muss aber noch die Info stecken, dass alte Images generiert werden, wenn ich
| sudo update-initramfs -uk all
|
eingebe. Hier das Ergebnis:
-rw-r--r-- 1 root root 10864408 Feb 17 00:34 initrd.img-3.13.0-108-generic
-rw-r--r-- 1 root root 6796397 Feb 17 00:34 initrd.img-3.13.0-98-generic
-rw-r--r-- 1 root root 6796394 Feb 17 00:34 initrd.img-3.13.0-96-generic
-rw-r--r-- 1 root root 6796321 Feb 17 00:34 initrd.img-3.13.0-95-generic
-rw-r--r-- 1 root root 6796289 Feb 17 00:34 initrd.img-3.13.0-93-generic
-rw-r--r-- 1 root root 6796300 Feb 17 00:35 initrd.img-3.13.0-92-generic
-rw-r--r-- 1 root root 6796414 Feb 17 00:35 initrd.img-3.13.0-91-generic
-rw-r--r-- 1 root root 6796401 Feb 17 00:35 initrd.img-3.13.0-88-generic
-rw-r--r-- 1 root root 6796408 Feb 17 00:35 initrd.img-3.13.0-87-generic
-rw-r--r-- 1 root root 6796282 Feb 17 00:35 initrd.img-3.13.0-86-generic
-rw-r--r-- 1 root root 6796311 Feb 17 00:35 initrd.img-3.13.0-85-generic
-rw-r--r-- 1 root root 6796407 Feb 17 00:35 initrd.img-3.13.0-83-generic
-rw-r--r-- 1 root root 6796289 Feb 17 00:35 initrd.img-3.13.0-79-generic
-rw-r--r-- 1 root root 6796319 Feb 17 00:35 initrd.img-3.13.0-77-generic
-rw-r--r-- 1 root root 6796294 Feb 17 00:35 initrd.img-3.13.0-76-generic
-rw-r--r-- 1 root root 6796294 Feb 17 00:35 initrd.img-3.13.0-74-generic
-rw-r--r-- 1 root root 6796354 Feb 17 00:35 initrd.img-3.13.0-73-generic
-rw-r--r-- 1 root root 6796305 Feb 17 00:36 initrd.img-3.13.0-71-generic
-rw-r--r-- 1 root root 6796385 Feb 17 00:36 initrd.img-3.13.0-70-generic
-rw-r--r-- 1 root root 6796398 Feb 17 00:36 initrd.img-3.13.0-68-generic
-rw-r--r-- 1 root root 6796392 Feb 17 00:36 initrd.img-3.13.0-67-generic
-rw-r--r-- 1 root root 6796409 Feb 17 00:36 initrd.img-3.13.0-66-generic
-rw-r--r-- 1 root root 6796413 Feb 17 00:36 initrd.img-3.13.0-107
Bei initrd.img-3.13.0-107 war /boot voll, keine Ahnung, was noch alles generiert worden wäre.
|
mounthawk
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2013
Beiträge: 17
|
redknight schrieb: mounthawk schrieb:
Warum werden seit neuestem die initramfs Images der alten Kernelversionen erzeugt?
Das hat Pit ausführlich dargelegt. Das ist ürbigens nicht erst "seit neuestem", sondern das normale Verhalten der Paketverwaltung
Lieber redknight, du kannst mir das ruhig glauben, dass es erst seit neuestem, vielleicht seit Kernel > 3.13.0-100* passiert. Sonst hätte ich das Problem schon viel früher gehabt. Ich will ja nicht in Abrede stellen, dass ich nicht sauber gearbeitet habe, aber das Phänomen ist definitiv neu. Es wurden vorher keine initrd.img-Dateien von älteren Kerneln angelegt oder wieder angelegt, wenn ich sie aus /boot gelöscht habe. Ich gehe davon aus, dass sich in der Kernelpaketverwaltung etwas geändert hat. Was soll es eigentlich für einen Sinn machen, diese alten initrd.img-Dateien anzulegen, die werden überhaupt nicht mehr zum booten verwendet.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21728
Wohnort: Lorchhausen im schönen Rheingau
|
mounthawk schrieb:
Ich habe versucht, die alten Kernelpakete mit
| dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
|
zu finden, so wie ich es im ersten Durchgang gemacht habe. Es werden aber kein mehr angezeigt.
Das zeigt aber nur den aktuell laufenden Kernel an. Edit: Das war Unsinn. Es zeigt alle außer dem laufenden an.
Nachdem ich noch einige Kernelpakete von Hand entfernt habe,
Nochmal: Zeige deine EIngabe und die Komplette ausgabe. Zum Beispiel von dpkg -l | grep linux-image Da stehen bei mir eine ganze Menge Zeilen mit rc mit bei, davon sieht man bei dir nichts (Falls Du genauerwissen willst, was RC heisst: dpkg) Evtl hast Du mit deinem RM verhindert, dass das Uninstall-Skript des Pakets sauber laufen konnte und deshalb wurde die config nicht bereinigt. Edit2: Zeig bitte auch die VOLLSTÄNDIGE Ausgabe von ls -l /boot}
|
Hans9876543210
Anmeldungsdatum: 2. Januar 2011
Beiträge: 3741
|
ls -hal /boot
(Ohne die letzte geschweifte Klammer). Dazu noch:
sudo apt-get install -f
|
bowman
Anmeldungsdatum: 17. Februar 2010
Beiträge: 7502
|
Da stehen bei mir eine ganze Menge Zeilen mit rc mit bei,
Dann hast du deine Kernel-Pakete nicht vollständig entfernt, wenn rc vor den Paketen steht. Man sollte nicht nur die Kernel-Pakete deinstallieren sondern auch die dazugehörigen je 2 headers-Pakete. Bei mir sind immer nur die Pakete der zwei installierten Kernel (ii) vorhanden, weil ich nach jedem Kernel-Update sauber mache. "restliche Konfigurationen" (rc) gibt's da nicht mehr. Seit 14.04 reicht dafür ein schlichtes sudo apt-get autoremove . Ausnahme: wenn man durch Upgrade auf 14.04 gekommen ist. Dann muss man die älteren Kernel-Pakete manuell löschen, weil diese nicht im Verzeichnis für Kernel, die mit autoremove entfernt werden können, drin stehen.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21728
Wohnort: Lorchhausen im schönen Rheingau
|
bowman schrieb: Dann hast du deine Kernel-Pakete nicht vollständig entfernt, wenn rc vor den Paketen steht.
Autoremove lässt die Konfiguration da - ich PURGE halt nur nicht 😉
|
bowman
Anmeldungsdatum: 17. Februar 2010
Beiträge: 7502
|
Komisch. Seit 16.04 haut autoremove auch ohne purge alle Konfigurationen mit weg. Macht auch Sinn, denn wozu braucht man Konfig-Dateien für nicht mehr vorhandene Kernel? 😉
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21728
Wohnort: Lorchhausen im schönen Rheingau
|
bowman schrieb: Komisch. Seit 16.04 haut autoremove auch ohne purge alle Konfigurationen mit weg.
Könnte dran leigen, dass ich noch aptitude nutze. Ist ja auch wurst. Macht auch Sinn, denn wozu braucht man Konfig-Dateien für nicht mehr vorhandene Kernel? 😉
Wozu nicht? *schulterzuck* Ich nehm die als Gedächtnisstütze, welche Kernel mal installiert waren. Muss jeder für sich selbst wissen.
|
mounthawk
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2013
Beiträge: 17
|
Hier die Ausgaben: dpkg -l | grep linux-image
ii linux-image-3.13.0-108-generic 3.13.0-108.155 i386 Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii linux-image-extra-3.13.0-108-generic 3.13.0-108.155 i386 Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii linux-image-generic 3.13.0.108.116 i386 Generic Linux kernel image
ls -hal /boot
insgesamt 21M
drwxr-xr-x 4 root root 3,0K Feb 17 05:50 .
drwxr-xr-x 26 root root 4,0K Feb 16 17:47 ..
-rw-r--r-- 1 root root 1,2M Jan 11 19:41 abi-3.13.0-108-generic
-rw-r--r-- 1 root root 167K Jan 11 19:41 config-3.13.0-108-generic
drwxr-xr-x 5 root root 1,0K Feb 16 23:21 grub
-rw-r--r-- 1 root root 11M Feb 17 00:34 initrd.img-3.13.0-108-generic
drwx------ 2 root root 12K Nov 3 2013 lost+found
-rw-r--r-- 1 root root 173K Mär 12 2014 memtest86+.bin
-rw-r--r-- 1 root root 174K Mär 12 2014 memtest86+.elf
-rw-r--r-- 1 root root 175K Mär 12 2014 memtest86+_multiboot.bin
-rw------- 1 root root 2,6M Jan 11 19:41 System.map-3.13.0-108-generic
-rw------- 1 root root 5,6M Jan 11 19:41 vmlinuz-3.13.0-108-generic
apt-get install -f
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 9 nicht aktualisiert. Die initrd-img Dateien der alten Kernel habe ich aus /boot wieder gelöscht. Nicht dass mit ein /boot mit 0 byte freiem Platz noch den nächsten boot verhindert.
|