PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Initrd: /dev Verzeichnis verschieben


Gast
2010-11-18, 02:02:08
Hallo zusammen,

habe ein Problem mit der Initrd (voyage Linux, basiert auf Debian). Kann nicht sagen, seit wann das auftritt und was ich da genau gemacht habe. Müsste zu weit ausholen, um das genau zu erklären. Brauche paar Ideen...
Die /init Script (also, das Originalscript, hab da an der Stelle nichts verändert) mountet udev unter /dev, dann wird das echte Root-Dateisystem unter /root gemountet und irgendwann am Schluss will das Script /dev nach /root/dev verschieben mit
mount -n -o move /dev /root/dev
Das klappt nicht, es kommt die Meldung, you have to specify the filesystem type (oder so). Die erste Frage ist schon mal, warum das jetzt überhaupt kommt, das kam früher nicht.
Dann hab ich das folgendermaßen abgeändert:
mount -t tmpfs -n -o move /dev /root/dev
Das klappt allerdings auch nicht, dann kommt sowas in der Art
tmpfs: no value for mount option "move".

Auf meinem normalen System wird /dev ebenfalls mit mount -n -o move nach /root/dev verschoben und es funktioniert ja auch...Irgendwelche Ideen?

sei laut+
2010-11-18, 11:59:54
Ich versteh viel Bahnhof in deinem Text, trotzdem klingelt bei mir deine Fehlermeldung.
Schau mal in die /etc/fstab rein. Wenn dort nicht das Dateisystem für das zu mountende Device definiert ist, kommt diese Meldung.

mrt
2010-11-18, 12:47:17
Ähem wieso bitte /root als /? Das ergibt keinen Sinn, besser gesagt, das is dumm³. Ist das bei Voyage wirklich so? Stehn die unter starken Drogen?
Falls das ein chroot werden soll, dann mit -o bind, sonst sollte es unter / bleiben.

Gast
2010-11-18, 17:49:38
Ich habe mich vielleicht nicht ganz klar ausgedrückt. So wie das passiert, ist es richtig. Das ist das übliche Vorgehen einer Initrd und das machen die anderen Systeme genauso. Unter Debian, Ubuntu etc. ist es ganz genauso, unter anderen sehr ähnlich.

Es geht eben um die Initrd, kein chroot oder so. Die soll dem Kernel helfen, das echte Root-Dateisystem einzubinden. Dazu brauchts aber schon eine lauffähige Umgebung. Deswegen werden /dev und /proc erstmal termporär gemountet, damit das /init Script das echte Root Dateisystem einbinden kann (z.B. LUKS, LVM oder was auch immer).
So, das echte Root-Dateisystem wird in dem Dateisystembaum erstmal temporär unter /root eingehängt. Das ist auch richtig so. Dann muss /root als die neue Wurzel des Dateisystembaumes umgehängt werden. Das macht switch_root. Aber dazu muss man erst /dev und /proc verschieben. Die wanderen zuerst nach /root/dev und /root/proc. Wenn /root zum neuen / wird, dann ergibt das wieder /dev und /proc.
Nur funktioniert in meinem Fall jetzt (warum auch immer) das verschieben von /dev nicht.

Mit der /etc/fstab hat das überhaupt nichts zu tun, aber danke für den Tipp.

Ich werd mir nachher wohl den Kernelsource an der Stelle anschauen müssen, aber mir fehlt grad komplett die Zeit dafür... Deswegen wollte ich erstmal paar Ideen sammeln. Ich selber hab jetzt beim Googeln keine ähnlichen Probleme finden können, aber vielleicht sind hier ja paar Embedded Entwickler oder so unterwegs, die viel an der Initrd gebastelt haben und über ähnliches gestolpert sind...

Lokadamus
2010-11-18, 18:18:55
Ähem wieso bitte /root als /?mmm...

Nein, darum geht es:
http://de.wikipedia.org/wiki/Initrd
http://de.wikipedia.org/wiki/Initramfs

Soweit ich es verstanden habe, hat er in seiner Init einen fehlenden Treiber, weshalb eine Partition nicht gemountet werden kann. Aber irgendwie komm ich bei seinem Gewusel nicht ganz klar und ich kenne mich mit dem Kram auch nicht so gut aus.
Kann so nur Vorschlagen es mit einer älteren Image- Datei zu versuchen.

Gast
2010-11-18, 20:12:11
Ok, ich habe das Problem "gelöst". Und zwar hab ich statt

mount -n -o move

mount --move genommen.

Das ist sicher ein Bug. Sieht nach einem Fehler in mount (zumindest in der verwendeten Version) aus.

mrt
2010-11-18, 20:50:22
Das "initrd" im Titel hab ich komplett übersehn. :D
Das nächste mal bitte etwas strukturierter schreiben, dann verstehn wir besser was du möchtest.