geli warten lassen auf USB-Stick mit Keyfile

raina

Well-Known Member
Folgendes Szenario:

Die Festplatte eines Laptops ist in zwei Slices ad4s1 und ad4s2 unterteilt.
Beide sind mit geli verschlüsselt und das System wird vom USB-Stick mit der Partition da0s1a gebootet.
Auf dem Stick befinden sich die Keyfiles ad4s1.key und ad4s2.key
ad4s1 wird beim booten als rootdevice erkannt und ohne Passphrase eingehängt.
In der fstab ist ein Eintrag für den USB-Stick vorhanden
Code:
/dev/ad4s1.elia     /     ufs     rw     0     0
/dev/da0s1a      /boot        ufs       ro       0     0
/dev/ad4s2.elia     /var     ufs     rw     2     2
/dev/ad4s2.elib    none     swap     sw     0     0
/dev/ad4s2.elid     /usr     ufs     rw     2     2
...
Nur leider wird er während des Bootprozesses nicht eingehängt, dadurch ist das Keyfile ad4s2.key nicht zugänglich, folglich kann geli das Slice ad4s2 nicht attachen, man landet bei einer emergency-Shell. Ein dort aufgerufenes mount -a hängt den Stick problemlos ein, natürlich gibt's Mecker, daß die anderen Devices noch unbekannt sind. Aber man kann geli aufrufen, wird nach der Passphrase gefragt und kann das zweite Slice einhängen. Nochmal mount -a und alles ist gemountet. CTRL-D und der Standardbootvorgang läuft weiter.

Ich habe erstmal das Keyfile ad4s2.key in das Bootverzeichnis auf dem ersten Slice kopiert, damit läuft der Bootprozeß problemlos durch. Scheint also, daß der Stick noch nicht bekannt ist, wenn er laut der fstab eingehangen werden soll. Kann man das Mounten irgendwie verzögern?

In dem manpages zu geli, mount, fstab und rc.conf hab ich jedenfalls keine derartige Option gefunden.
 
Hallo,

mich wundert zwar, dass ad4s1 eingehängt wird, dafür ist doch auch ein keyfile des Sticks nötig!?

aber probier mal auf dem Stick in /boot/loader.conf folgende variable zu setzen:
kern.cam.boot_delay=10000

Gruß
PhysChemist
 
Tu dir den gefallen und setze Labels. Sonst wird spätestens sobald du die Platten anders verkabelst ein böses Erwachen einsetzten.
 
mich wundert zwar, dass ad4s1 eingehängt wird, dafür ist doch auch ein keyfile des Sticks nötig!?
Das erkennt er noch von dem Startsystem auf dem Stick, aus, danach wechselt / auf das erste Slice von der Festplatte. Dort müssen scheinbar alle Devices neu gescannt werden. 100%ig hab ich das auch nicht verstanden. jedenfalls dauert es etwas, bis der Stick vom neuen Root sichtbar ist.
aber probier mal auf dem Stick in /boot/loader.conf folgende variable zu setzen:
kern.cam.boot_delay=10000

Netter Versuch, klappt leider nicht. Trotzdem Danke.
Tu dir den gefallen und setze Labels. Sonst wird spätestens sobald du die Platten anders verkabelst ein böses Erwachen einsetzten.
In meinem Laptop hab ich gar nicht soviele Kabel, daß ich Gefahr laufe, den Überblick zu verlieren.
 
In meinem Laptop hab ich gar nicht soviele Kabel, daß ich Gefahr laufe, den Überblick zu verlieren.

Ich habe es schon erlebt (bei Linux), dass nicht immer der Stick nach der Festplatte erkannt wurde. Dann war die /dev/sda .. sdb Zuordnung natürlich falsch.
Bei FreeBSD ist mir das noch nicht passiert, im allgemeinen habe ich da eher das Problem, dass ein Stick nicht rechtzeitig erkannt und deshalb gar nicht als Bootdevice genommen wird, trotzdem können Labels da auch sinnvoll sein, etwa, wenn noch was anderes steckt, dass die reihenfolge durcheinanderbringen kann.

Alleine, das wird wohl dein Problem nicht lösen :(

Es gab eine Option late beim mount, entschuldige, dass ich nun keine Zeit habe, selbst nachzulesen, ob das bei FreeBSD oder bei GNU/Linux war. Diese Option war genau dazu gedacht, auf langsamere Geräte zu warten. Vielleicht findest du was dazu.
 
Es gab eine Option late beim mount, entschuldige, dass ich nun keine Zeit habe, selbst nachzulesen, ob das bei FreeBSD oder bei GNU/Linux war. Diese Option war genau dazu gedacht, auf langsamere Geräte zu warten. Vielleicht findest du was dazu.
Yes, I read the fine manual.
Code:
man mount
...
The options are as follows:
...
-o      Options are specified with a -o flag followed by a comma sepa-
	     rated string of options.  In case of conflicting options being
	     specified, the rightmost option takes effect.  The following
	     options are available:
...
             late    This file system should be skipped when mount is run with
		        the -a flag but without the -l flag.
...
skippen kann ich aber auch mit noauto. Es sollte eigentlich schon automatisch gemountet werden.
 
Yes, I read the fine manual.
Code:
man mount
...
The options are as follows:
...
-o      Options are specified with a -o flag followed by a comma sepa-
	     rated string of options.  In case of conflicting options being
	     specified, the rightmost option takes effect.  The following
	     options are available:
...
             late    This file system should be skipped when mount is run with
		        the -a flag but without the -l flag.
...
skippen kann ich aber auch mit noauto. Es sollte eigentlich schon automatisch gemountet werden.

Dann macht das genau nicht, was ich dachte.
Vielleicht kannst du es trotzdem irgendwie nutzen und zum Rechten Zeitpunkt dann mount -al aufrufen, um eben diesen Stick einzubinden.
Was natürlich kein Unterschied zu einem kompletten mount aus einem Script heraus darstellt. Mhm.
 
Zurück
Oben