« Freier Film: Star Wreck – In the Pirkinning
Netzwerk – Autokonfigurationsskript »


29. Oktober 2007 - 13:34

Your system seems to be missing critical device files in /dev

Abgelegt unter: Gentoo, Linux von Florian Löffler

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/fixit

You 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.

Wie können Device Nodes fehlen? Ich benutze doch udev und die nodes sollten dynamisch beim Starten erzeugt werden.
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.
Gut, wie kann man also die fehlenden Nodes wieder erzeugen?
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.

Funktioniert immer noch nicht?
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

Kommentar abgeben



Generiert in 2.392 Sekunden, 38 Datenbankabfragen. | Powered by WordPress

Webliga-Webkatalog - Computer Webliga - Webkatalog  |  Webkatalog - b1x.de
Slamit -- Episode Guides -- Die Säulen der Erde -- Higarts