PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Usbstick als "KeyDevice" beim Booten



shy
29.12.05, 17:56
Hallo :)

Ich benutze Ubuntu 5.10 und habe unteranderem /var und /tmp auf eine verschlüsselte Partition verlinkt.
Desswegen habe ich ein Script in /etc/rcS.d verlinkt,
um die Partition per 'cryptsetup -d ${keyfile} luksOpen ..' rechtzeitig zu öffnen und zu mounten,
bevor /var und /tmp von anderen Prozessen erst benötigt werden.

Das Keyfile liegt momentan auf der Festplatte,
soll aber mit gpg verschlüsselt auf einen Usbstick (/dev/sdb1) gelegt werden.

Das Script soll jetzt überprüfen ob der Usbstick eingesteckt ist, ihn mounten, das verschlüsselte
Keyfile.gpg auf eine Ramdisk kopieren und es dort durch Passphrase-Eingabe mit gpg entschlüsseln.

Falls der Usbstick nicht eingesteckt ist, werden die bereits gestarteten Scripte beendet.
Mit '../init.d/halt' sollte die Maschine dann ausgeschaltet werden. Sauber? 8)

Mein Problem ist jetzt, dass das Script teilweise nur im Terminal unter X funktioniert und nicht beim Booten.
Da ich noch keine Ahnung vom "Shell-Scripten" habe sieht dies so aus:

Heirmit wollte ich ungefär überpfüfen ob der Usbstick eingesteckt ist:

mkdir /mnt/dev
mount /dev/sdb1 /mnt/dev
(Funktioniert nicht beim Booten und gibt natürlich Fehlermeldung wenn Usbstick fehlt)

if [ -f /mnt/dev/key.gpg ]; then
echo "Usbstick ist da!"
else
echo "Wo ist der Usbstick?"
fi

Erstellen von Ramdisk:

mkfs.ext2 /dev/ram0
mkdir /mnt/key
mount /dev/ram0 /mnt/key

Entschlüsseln des Keyfiles:

cp /mnt/dev/key.gpg /mnt/key
gpg /mnt/key/key.gpg
(Beim Booten friert bei der Passphrase-Abfrage alles ein, sodass nichts mehr geht)

Dann wollte ich noch ein kleines Menü bei dem man gefragt wird,
ob man den Stick noch einsteckt oder ob man herunterfahren möchte:

echo "Nochmal?"
read value (Hier friert ebenfalls alles ein)
if..

Kann es sein, dass diese Funktionen noch nicht möglich sind (Boot),
oder muss das Script nur angepasst und verbessert werden und kann mir dabei jemand helfen? :D

shy
02.01.06, 13:48
Frohes Neues !!

BedriddenTech
02.01.06, 18:14
Hm, das wird nicht funktionieren, weil udev /var benötigt, und ohne udev gibt's kein /dev/sdb1. Ich bin mir zwar da nicht 100%ig sicher, aber das müßte das Problem sein.

KatZ
02.01.06, 21:34
könnte man nicht sone art "dummy" /var/ und udev auf dem usb stick anlegen

..falls es daran liegt ?

BedriddenTech
02.01.06, 21:54
Zugegeben, ich bin da kein Versierter, aber für mich sieht das nach Henne-Ei aus: /dev/sdb1 ist nicht erreichbar, weil udev nicht gestartet werden kann, weil udev /var braucht. Wenn /var auf /dev/sdb1 liegt, dann existiert /dev/sdb1 trotzdem solange nicht, wie nicht udev gestartet ist, was wegen /var nicht starten kann, welches wieder auf /dev/sdb1 liegt, aber /dev/sdb1 ...

Verstehst du, was ich meine? :)