Ich habe
genkernel um die Möglichkeit
dropbear in die
initrd aufzunehmen erweitert.
dropbear ist ein kleiner
ssh-Server, mit dem ich mich jetzt problemlos in die
initrd einloggen kann. So hab ich die Möglichkeit meine verschlüsselte
root-Partition auch per
remote-Verbindung zu entschlüsseln. Nun zu meinem Problem:
Damit das System nachdem entschlüsseln der Festplatte per
ssh den
boot-Prozess wieder aufnimmt muss die Funktion
openLUKS im
init-script etwas angepasst werden und genau da steh ich im Moment auf dem Schlauch.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
crypt_filter "cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
if [ $? -eq 0 ]
then
good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
break
else
bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
DEV_ERROR=1
KEY_ERROR=1KEY
DEV_ERROR=1
fi
|
An dieser Stelle stoppt das
script, wenn kein Wechseldatenträger mit dem passendem Schlüssel gefunden wurde. Das soll auch so bleiben damit immer die Möglichkeit besteht das Password lokal einzugeben. Soweit so gut. Um zu erkennen, ob im Hintergrund per
ssh die
root-Partition entschlüsselt wurde finde ich eine
until-Schleife sinnvoll. Diese überprüft dann regelmäßig, ob das entsprechende
device unter
/dev/mapper erstellt wurde.
|
Quellcode
|
1
2
3
4
5
6
|
until [ -f "/dev/mapper/${LUKS_NAME} ]
do
sleep 30
done
good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
break
|
Aber wie kombiniere ich beide Schleifen so das sie beide gemeinsam starten und sobald eine erfolgreich durchläuft die andere beendet?
Wahrscheinlich ist die Lösung mal wieder ganz einfach.
Ich hoffe ich habe euch mein Problem gut geschildert und ihr könnt mir weiterhelfen für jede Hilfe bin ich sehr dankbar.
MfG gnuf
P.S.
Wenn alles zu meiner Zufriedenheit funktioniert werde ich meine gepatchte Version von
genkernel natürlich in meinem
overlay veröffentlichen.