nochmal NanoBSD und mount root from disk error

Flex6

Well-Known Member
Hallo!
Ich hab ich nochmal zu NanoBSD erschlossen und ein paar Images gebaut, Probs ist jetzt meine root-Partition wird nicht angesprochen oder gefunden.
Orginal von NanoBSD-config oder meine sieht folgendes vor:
NANO_DRIVE=da0 , ich benutz USB-Stick also da0
NANO_NEWFS="-b 4096 -f 512 i 8192 -01 -U"

in der nanobsd.conf und Image steht dann NANO_DRIVE=da0
in der fstab:
/dev/da0s1 / ufs 1 1
/dev/da0s3 /cfg 2 2

im Kernel ist "options scbus" und auch "options da", "MD_ROOT" und auch für USB umass,uhci,ehci um USB-Disk oder Drive anzusprechen.
Das bauen klappt soweit und ich kann die Images egal ob _.disk.full oder _.disk.images auch auf den Stick installieren und booten bis zu:
da0 Name vom Stick etc , Stick wird richtig erkannt,und nächste Zeile mount root partition kommt:
mount root error
so ähnlich hier: http://forums.freebsd.org/showthread.php?t=9085
es wird /dev/da0s1 nicht gefunden und es erscheint
mountroot: gebe ich dort ? ein listet er mir kein Laufwerk oder Partition auf.
es wird empfohlen in die loader.conf
Loader variables:
vfs.root.mountfrom=ufs:/dev/da0s1
vfs.root.mountform.options=rw
einzutragen, was aber nicht hilft.
Tausche ich da0 gegen ad oder ad0 ist das gleiche, es wird die Partiton nicht gefunden. Problem gabs bei Pfsense und BSDRP auch und man hat zumindest bei pfsense es so geändert das in der fstab steht:

/dev/ufs/pfsense / 1 1
/dev/ufs/xy /cfg 2 2
also es gibt keine device daXY oder adXY in der fstab und auch im nanobsd-image gibt es orginal keine /dev , also /dev ist leer. Es gibt seit 8.0 einen Patch für NanoBSD bzw. eine Änderung das NANO_DRIVE=ufs/NANO angegeben werden kann und habs jetzt noch geändert und von einem 2ten Patch der für pfsense gedacht ist und die Zeilen angepaßt hab für mich.
newfs ${NANO_NEWFS} /dev/${MD}s3
zu
newfs -L ${NANO_DRIVE} ${NANO_NEWFS} /dev/${MD}s1a

mein Drive-Name ist jetzt natürlich: NANO_DRIVE=ufs/NANO und im image soll nanobsd.conf NANO_DRIVE=ufs/NANO stehen
und in der fstab:
/dev/ufs/NANOs1 / 1 1
/dev/ufs/NANOs3 /cfg 2 2
vielleicht hat jemand einen Tip, gerade zu newfs -L ${NANO_DRIVE}${NANO_NEWFS}, muß ich (siehe oben NANO_NEWFS=) überhaupt angeben. Also nur das wie bei FreeBSD auf Stick:
newfs -U -L FBSDonUSB /dev/da0s1a , ich hab eben md0s1a bei Erstellung.

funzt nicht, es erkennt zwar ufs/NANOs1a in der fstab, wird aber beim boot nicht gefunden und lande bei moutroot> und es werden auch keine devices angezeigt oder mit ? gefunden.
 
Zuletzt bearbeitet:
hab ich doch noch das Probs lösen können.

Variante1:
+ pause("usbwait", hz * 10);

edit /usr/src/sys/kern/vfs_mount.c
in 1655 line:
....
options = NULL;
+ pause("usbwait", hz * 10);
root_mount_prepare();
Add a pause of 10 seconds to mount the root filesystem during this time usb hdd

einfache Variante 2:
kern.cam.boot_delay="10000" in die loader.conf

brauch man nur anwenden wenn man USB Stick mit FreeBSD oder NanoBSD als Festplatte da* benutzt. Es gibt noch andere Varianten, leider gabs da immer dies oder jenes Probs, wie das Kernelbau mit Fehler abgebrochen hat.
 
Zuletzt bearbeitet:
Hi,

das Problem konnte ich auch reproduzieren. Ein kern.cam.boot_delay="10000" schafft Abhilfe. Anscheinend sind manche USB Bus Controller etwas behäbig mit der Device Erkennung. Ein ICH7 zickt hier rum während ein ICH10 keine Probleme macht.

mfg

carb
 
Ich hatte das Probs bei allen Chipsätzen und egal ob USB 1.1 oder USB 2.0 und auch Sticks mit verschiedenen Geschwindigkeiten. Ärgerliche ist , das man wirkliche lange suchen muß um eine funktionierende und akzeptable Lösung zu finden.
 
Zurück
Oben