FreeBSD 8RC1: ROOT MOUNT ERROR, geli+zfs+usb boot

lockdoc

Well-Known Member
Es gab schon einen ähnlichen thread zur Beta1, allerdings klappt bei mir zfs ohne geli problemlos.

Ich bekomme aber mit geli folgenden Fehler
Code:
Trying to mount root from zfs:tank
ROOT MOUNT ERROR:
If you have invalid mount options, reboot, and first try the following from
the loader prompt:

     set vfs.root.mountfrom.options=rw

and then remove invalid mount options from /etc/fstab.

Loader variables:
vfs.root.mountfrom=zfs:tank
vfs.root.mountfrom.options=

Manual root filesystem specification:
  <fstype>:<device>  Mount <device> using filesystem <fstype>
                       eg. ufs:/dev/da0s1a
                       eg. cd9660:/dev/acd0
                       This is equivalent to: mount -t cd9660 /dev/acd0 /
da0 at umass-sim0 bus 0 target 0 lun 0

  ?                  List valid disk boot devices
  <empty line>       Abort manual input

mountroot> zfs:tank
Trying to mount root from zfs:tank

Nachtrag:
Die Festplatten habe ich in der Fixit folgendermaßen verschlüsselt:
Code:
> geli init -P -K /root/keys/ad10.key -s 4096 -l 256 /dev/ad10p2
> geli init -P -K /root/keys/ad12.key -s 4096 -l 256 /dev/ad12p2
> geli init -P -K /root/keys/ad14.key -s 4096 -l 256 /dev/ad14p2

Die Kiste bootet vom USB Stick. Dieser hat folgende loader.conf
Code:
	geom_eli_load="YES"

	geli_ad10_keyfile0_load="YES"
	geli_ad10_keyfile0_type="ad10:geli_keyfile0"
	geli_ad10_keyfile0_name="/keys/ad10.key"

	geli_ad12_keyfile1_load="YES"
	geli_ad12_keyfile1_type="ad12:geli_keyfile1"
	geli_ad12_keyfile1_name="/keys/ad12.key"

	geli_ad14_keyfile2_load="YES"
	geli_ad14_keyfile2_type="ad14:geli_keyfile2"
	geli_ad14_keyfile2_name="/keys/ad14.key"

	zfs_load="YES"
	vfs.root.mountfrom="zfs:tank"

Die fstab auf der Festplatte sieht wie folgt aus:
Code:
	tank		/		zfs	rw	0	0
	tank/home	/home		zfs	rw	0	0
	tank/root	/root		zfs	rw	0	0
	tank/tmp	/tmp		zfs	rw	0	0
	tank/usr	/usr		zfs	rw	0	0
	tank/var	/var		zfs	rw	0	0

im output vor dem ROOT MOUNT ERROR: kann ich nirgends sehen, dass die Festplatten mit geli entschlüsseln will. Wie ich das sehe scheint zfs vor geli zu starten, wie kann ich das ändern.
 
Zuletzt bearbeitet:
Problem erkannt: Zfs ist unschuldig | Geli is schuld

Ich habe jetzt das Problem erkannt. Es liegt daran, dass die Festplatten folgendermaßen mit Geli initialisiert werden:

Code:
> geli init -P -K /root/keys/ad14.key -s 4096 -l 256 /dev/ad10

 # -P keine Passwortabfrage on boot
 # -K Keyfile

Ich habe es allerdings mit folgender initialisierung hinbekommen:
Code:
> geli init [COLOR="DarkRed"][B]-b[/B][/COLOR] -K /root/keys/ad14.key -s 4096 -l 256 /dev/ad10

 # [COLOR="DarkRed"][B]-b[/B][/COLOR] Ask for the passphrase on boot, before the root par-
	tition is mounted.  This makes it possible to use an
	encrypted root partition.

 # -K Keyfile

Offensichtlich können die Festplatten nur in den ZFS Pool gemountet werden, wenn man eine Passwortabfrage hinzufügt. Das erscheint mir allerdings sehr sehr komisch, zudem ist es auch verdammt ungünstig, denn an der Kiste soll später kein extra Monitor ran...

Gibt es da noch nen anderen weg?
 
Das gleiche Problem hab ich auch auf meinen Fileserver. Hab dass System auf eine kleine unverschlüsselte Partition installiert. Dann kannst Du Dir ein Script schreiben, dass vor dem shutdown folgendes ausführt:

Code:
zpool export MeinZpool


Der zpool wird dann beim Neustart nicht automatisch gemountet. Du kannst mit

Code:
geli init -P -K /root/keys/ad14.key -s 4096 -l 256 /dev/ad10
zpool import MeinZpool

deinen zpool mounten.


Bin gespannt ob hier noch jemand eine richtige lösung für das Problem hat
 
Code:
geli init -P -K /root/keys/ad14.key -s 4096 -l 256 /dev/ad10
zpool import MeinZpool

Du meinst wohl
Code:
geli attach -k /root/keys/ad14.key
Da du doch sonst die Platte immer wieder neu verschlüsselt und die soll doch entschlüsselt werden ;-)

Ich verstehe nich ganz, warum der zpool nicht mounten soll - mein system liegt doch dadrauf und wenn der nich mounted, kann das System nicht hochfahren... soweit zur Theorie, oder ich habe dich falsch verstanden, aber danke für den reply
 
Zurück
Oben