Vor einigen Monaten veröffentlichte ich eine Anleitung zur Verschlüsselung eines Ubuntu-Servers. Da es einen Bug im cryptsetup gab, wurde in dem Artikel ein Workarround beschrieben. Mittlerweile wurde das cryptsetup-Paket aktualisiert und der entsprechende Bug gefixt. Allerdings führt dies zu Problemen mit dem Workarround. Möchte man den Server nun entsperren, erhält man folgende Meldung:
$ cryptroot-unlock /bin/cryptroot-unlock: line 192: 2: parameter not set /bin/cryptroot-unlock: line 192: 2: parameter not set /bin/cryptroot-unlock: line 192: 2: parameter not set
Gelöst werden kann dieses Problem in dem folgendes Kommando genutzt wird:
sed 's/print $1, $5/print $1, $3/' /bin/cryptroot-unlock > /tmp/cryptroot-unlock; ash /tmp/cryptroot-unlock
Damit lässt sich der Server entsperren. Im zweiten Schritt kann nun der Workarround entfernt werden und das initramfs aktualisiert werden:
rm /etc/initramfs-tools/hooks/cryptsetup-fix.sh update-initramfs -u
Nach einem Neustart des Systems, kann dieses nun wie folgt entsperrt werden:
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3) built-in shell (ash) Enter 'help' for a list of built-in commands. # cryptroot-unlock Please unlock disk cryptroot (/dev/md1): cryptsetup: cryptroot set up successfully # exit
Anschließend wird das System hochgefahren und der Server steht zur Verfügung.