Vor nicht allzu langer Zeit sass ich entspannt bei einem Kaffee und
wollte meinen Rechner starten. Einschaltknopf gedrückt und der
Bildschirm lächelte mich mit einer Fehlermeldung an:
error: unexpectedly disconnected from boot status daemon
Begin: Waiting for root file system ...
grml, warum muss das ausgerechnet
jetzt passieren? Sehr schnell war klar, dass ich an dieser Stelle
nicht weiter komme. Also bootete ich einen alten, funktionierenden
Kernel und änderte meine grub-Einstellungen entsprechend. Damit lebte
ich einige Zeit gut, bis mir mal wieder der Workaround auffiel. Jetzt
wollte ich das Problem mal genauer angehen.
Die Fehlermeldung, die irgendwas von dem Boot Status Daemon
erzählte, schien auf plymouth
hinzudeuten. Der Sinn der Software ist es, den Bootprozess zu
verschönern. Das heißt, es macht schicke Bildchen anstatt der
Kernelmeldungen.
Der Bugtracker von Debian
hatte einen Eintrag
zu meiner Meldung. Die in dem Bugreport genannten Einstellungen
änderten bei mir nichts am Problem. In meinem nächstem Versuch wollte
ich plymouth deinstallieren. Aber da gab es eine winzige Abhängigkeit
zu mountall(8). Der Zufall führte mich zu einem angepasstem
Paket, mit dem plymouth deinstalliert werden kann. In freudiger
Erwartung startete ich den Rechner neu. Aber es wäre nur zu schön
gewesen, wenn sich das Problem so leicht lösen ließe.
Zu diesem Zeitpunkt kam mir in den Sinn, die Bootoptionen
quiet
und splash
zu entfernen. Siehe da, ein
wenig mehr kam zum Vorschein:
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Waiting for root file system ...
Warten, warten und nochmal warten. Oh, nun noch eine
BusyBox-Shell:
(initramfs) Gave up waiting for root device. Common problems:
...
ALERT! /dev/disk/by-uuid/.... does not exist. Dropping to a shell!
Nebenbei stellte ich dann fest, dass die Meldung mit dem Boot
Status Daemon nur bei einer speziellen Kernelversion auftrat. Die
Meldung oben konnte ich mit jeder Standard-Ubuntu-Kernelversion größer
als 2.6.32-20 erzeugen. Für mich wäre es viel wichtiger zu erfahren,
woher denn diese Meldung stammt!
Ein Hinweis brachte mich dann zu den Mainline-Builds. Das
sind spezielle Pakete des Ubuntu Kernelteams, die recht nahe am
Original-Kernel sind. Ich versuchte wieder diverse Versionen. Alle
brachten mir die Fehlermeldung. Na gut, dann baue ich eben einen
eigenen Kernel.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
cp /boot/config-2.6.32-24-generic /usr/src/linux-2.6/.config
make oldnoconfig
make deb-pkg
dpkg -i ../linux*.deb
reboot
Beim ersten Reboot startete der Kernel tatsächlich korrekt. Sollte
Ubuntu wirklich einen Bug in den eigenen Kernel eingebaut haben?
Plötzlich fiel mir ein, dass die Zeile im grub einen kleinen, aber
feinen Unterschied zu den restlichen Einträgen aufwies. Ich hatte
root=/dev/sda1 angegeben. Alle anderen Einträge trugen
root=UUID=.... Also versuchte ich die Änderung bei den
anderen Kerneln und es klappte. Jede Kernelversion bootete mit dieser
Änderung.
Jetzt muss ich nur noch herausfinden, warum das nicht klappt und
ich bin wieder ein glücklicher Mensch.
Das Bild stammt vom Blog Linux und ich