Kernel Panic nach Kernel update in Debian 8

Der Inhalt dieses Posts ist etwas länger weil er auch teilweise meinen zeitlichen Erkenntnisgewinn mit beschreibt. Vielleicht ist es aber für andere hilfreich.

Nach einem Kernelupgrade von 3.2 auf 3.16 im Rahmen eines Debian Upgrades von 7 nach 8 auf einem Root Server führte das Neustarten des Server zu einem Kernel Panic.

Kernel Panic

Der Panic kam so früh das man gar keine richtige Fehlermeldung sehen konnte. Glücklicherweise konnte ich den Fehler in einer Virtualbox restaurieren.

Da dieser Panic auch in einer virtuellen Umgebung auftrat habe ich erst einmal Hardware Probleme ausgeschlossen.

Leider brachten auch Nachfragen in den üblichen Debian Foren keine Hinweise.

Nach etwas herumprobieren kam ich auf die Idee den Kernel und die initiale Ramdisdk initrd von der nativen Debian 8 Boot CD zu nehmen und in der virtuellen Umgebung zu booten. Und es ging.

In einem Gespräch auf einem Debian Stand der OpenRheinRuhr bekam ich den Hinweis mich mit dieser ominösen initrd näher zu beschäftigen. Ich kannte (und kenne auch heute noch) nicht die genauen Abläufe beim Booten. Diese initrd ist eine Datei die direkt nach dem Booten geladen wird und die unbedingt notwendigen Dateien für den weiteren Bootverlauf enthält. Deswegen wird diese auch immer für jeden Rechner neu gebaut. Das Werkzeug das diese initrd baut heist “initramfs-tools”.

Man kann sich den Inhalt solche einer initrd mit dem Programm lsinitramfs auch anschauen.

Als bin ich hingegangen und habe den Inhalt der funktionierenden und der nicht funktionieren initrd in Textdateien mit einander vergleichen und Stück für Stück die Unterschiede eliminiert und immer wieder eine neue initrd gebaut bis ich dann am Ende den “Bösewicht” gefunden hatte.

Der “Bösewicht” waren versteckte svn Verzeichnisse in /etc/initramfs-tools die ich vor einiger Zeit verwendet hatte meine Änderungen in der Konfiguration nachzuvollziehen.

Heute konnte die Lösung auch auf dem Root Server erfolgreich testen.

Also: Augen auf bei Subversion im /etc Verzeichnis.