29. Oktober 2007 - 13:34
Your system seems to be missing critical device files in /dev
Vor einiger Zeit tauchte bei mir nach dem Booten direkt vor dem Login Prompt folgende Meldung auf:
Your system seems to be missing critical device files in /dev ! Although you may be running udev or /devfs, the root partition is missing these required files !
To rectify this situation, please do the following:
mkdir /mnt/fixit
mount –bind / /mnt/fixit/dev/
cp -a /dev/* /mnt/fixit/dev/
umount /mnt/fixit
rmdir /mnt/fixitYou may refer to these instructions at /etc/issue. If you previously had an issue file, it has been backed up at /etc/issue.devfix. Once you’ve fixed your system, you will have to restore your old issue file in order to get rid of this warning.
Wahrscheinlich hatte ich beim Updaten auf udev irgendwas zerschossen oder sowas.
Naja, halb so schlimm. Die Lösung wird ja gleich mitgeliefert. Leider führte diese nicht zum Erfolg bei mir, weshalb ich etwas tiefer graben musste, um dem Problem auf den Grund zu gehen.
Prinzipiell stimmt das, jedoch bevor udev initialisiert werden kann ist ein minimales statisches /dev das wenigstens die nodes /dev/null und /dev/console enthält nötig, wobei /dev/console nur nötig ist, um Bootmeldungen auf dem Bildschirm auszugeben.
Fehlt eine dieser beiden Nodes, so wird die obige Meldung ausgegeben.
Naja, zunächst müssen wir Zugriff auf das statische /dev bekommen. Da beim Booten das dynamische udev auf /dev gemountet wird müssen wir einen kleinen Umweg über einen zusätzlichen Mountpoint machen, auf den wir das statische dev mounten können.
mkdir /mnt/fixit
mount --bind / /mnt/fixit/dev/
Unter /mnt/fixit/dev hat man nun Zugriff auf die statischen Device Nodes. Hiervon sind eigentlich alle überflüssig, ausser /mnt/fixit/dev/null und /mnt/fixit/dev/console.
Im vorgeschlagenen Lösungsweg wir nun versucht die dynamisch generierten Device Nodes in das statische /dev zu kopieren, was allerdings bei mir nicht funktionierte, deshalb habe ich zunächst das statische dev unter /mnt/fixit/dev geleert und dann /mnt/fixit/dev/null und /mnt/fixit/dev/console einfach per Hand angelegt.
rm -r /mnt/fixit/dev/*
mknod -m 666 /mnt/fixit/dev/console c 5 1
mknod -m 666 /mnt/fixit/dev/null c 1 3
mv -f /etc/issue.devfix /etc/issue
umount /mnt/fixit
rmdir /mnt/fixit
Jetzt sollte die Meldung ausbleiben und das System wieder sauber booten.
Nach dem Befolgen der ursprünglichen Anweisungen des /etc/issue Files (kopieren des dynamischen dev) hatte ich das Problem, dass /mnt/fixit/dev/console und /mnt/fixit/dev/null falscherweise keine Character Devices sondern normale Dateien waren.
Gekennzeichnet sind Character Devices mit einem ‘c’ vor den Dateirechten. Es sollte sich also folgende Ausgabe für die korrekten Device Nodes ergeben. Falls nicht bitte nochmal die Nodes, wie oben beschrieben von Hand anlegen.
mkdir /mnt/fixit
mount --bind / /mnt/fixit/dev/
ls -la /mnt/fixit/dev/null
crw-rw-rw- 1 root root 1, 3 Oct 7 19:57 /mnt/fixit/dev/null
ls -la /mnt/fixit/dev/console
crw-rw-rw- 1 root root 1, 3 Oct 7 19:57 /mnt/fixit/dev/console
umount /mnt/fixit
rmdir /mnt/fixit
Keine Kommentare »
Noch keine Kommentare.
RSS Feed für Kommentare zu diesem Eintrag. TrackBack URI


Kommentare: