Skip to content

Die Sache mit dem Kernelupdate

Schon seit vielen Jahren baue ich nur noch Linux-Kernels selber, wenn es wegen Treibern o.ä. gar nicht anders geht. Ansonsten bleibt immer der Kernel aus der Distribution drauf. Das sichert auch ein anständiges Update mit dem Packetmanager des Systems.

Wie immer werfe ich mein Update also mit aptitude safe-upgrade an und lasse den Kernel mit updaten. Geht immer Problemfrei. Aber heute hatte ich mal wieder so einen Mist-die-Installation-ist-schon-älter-Effekt. Das ist beim Debian absolut nichts schlimmes. Aber zu erkennen ist es daran, dass ich der /boot-Partiton nur 100MB gegönnt habe. Das hat früher immer ausgereicht. Aber neue Kernels werden auch immer größer. Und so kam es, dass beim Update die Initramdisk für den 3.2er Kernel keinen Platz mehr fang.


update-initramfs: Generating /boot/initrd.img-3.2.0-4-686-pae

gzip: stdout: No space left on device
cpio: Fehler beim Schreiben: Datenübergabe unterbrochen (broken pipe)
E: mkinitramfs failure cpio 1 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-4-686-pae with 1.
dpkg: Fehler beim Bearbeiten von initramfs-tools (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
Fehler traten auf beim Bearbeiten von:
initramfs-tools


Ein df -h zeigte auch gleich an, dass die Partition voll ist. Hätte ich so rebootet wäre das System nicht mehr hochgekommen. Was bei einem Webserver ohne Zugriff auf eine lokale Konsole fatal ist.

Gelöst bekommt man das Problem ganz einfach. Einmal ein dpkg -l linux-image-* abschicken und ich kann sehen, welche Kernels noch alle Installiert sind. Mit der Ausgabe rollt man das Problem jetzt von hinten auf und deinstalliert die alten Kernels einfach in aufsteigender Versionsnummer bis nur noch die notwendigen Kernels vorhanden sind. Das sieht dann so aus: aptitude remove linux-image-2.6-686 linux-image-2.6.32-5-686 linux-image-3.0.0-1-686-pae linux-image-3.1.0-1-686-pae.

Beim Deinstallieren des Kernels werden auch die Init-Ramdisks, die beim installieren eines Kernels erstellt werden, wieder mit entfernt. Ich hab also danach wieder genug Platz frei.

Das schöne daran ist, dass der Debian-Packetmanager auch gleich mitbekommt, dass der aktuelle Kernel nicht vollständig installiert ist. Nachdem die alten Kernels deinstalliert sind, baut der also automatisch die fehlende Initramdisk nach und das System ist wieder bootfähig.

Der Ablauf ist absolut nichts schwieriges. Aber er taucht bei mir so selten auf, dass ich nicht vor einem Update auf die Größe der /boot Partition schaue. Also dachte ich mir, ich präg mir das jetzt mal durch Bloggen ein...

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Christian am :

Vielen Dank!
In das Problem bin ich gerade auf meinem Hetzner Server gerannt

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!

cronjob