Root-Verschlüsselung mit LUKS: Root-Partition nicht gefunden

Root-Verschlüsselung mit LUKS: Root-Partition nicht gefunden

Das Layout meiner einzigen Festplatte ist das folgende: /dev/sda1 for the plaintext boot partition /dev/sda2 for the encrypted root partition

Mein System ist ArchLinux und ich folgtedieser Leitfadenum die Root-Verschlüsselung einzurichten (kein LVM, kein Raid). Folgendes habe ich gemacht: habe es ausgeführt cryptsetupund /dev/sda2in/dev/mapper/cryptroot

Meines /etc/fstabsieht so aus: UUID=of /dev/mapper/cryptroot / ext4 rw,relatime,data=ordered,discard 0 1 UUID=of /dev/sda1 /boot ext4 rw,relatime,data=ordered,discard 0 2

Darin /etc/default/grubhabe ich eine einzige Zeile wie folgt geändert: GRUB_CMDLINE_LINUX="cryptdevice=UUID of /dev/sda2:cryptroot:allow-discards"

Im Folgenden /etc/mkinitcpio.confsehen die Hooks so aus: HOOKS="base udev autodetect modconf block encrypt filesystems keyboard fsck"

Schließlich habe ich das Laufen mkinitcpio -p linuxbzw.grub-mkconfig -o /boot/grub/grub.cfg

Ich habe meine Aktionen so zügig aufgezählt, weil ich zuvor erfolgreich die Verschlüsselung für mein Root-FS konfiguriert habe. Am Ende erhalte ich also die folgende Fehlermeldung:

ERROR: device *UUID of /dev/mapper/cryptroot* not found. Skipping fsck. ERROR: unable to find root device *UUID of /dev/mapper/cryptroot* You are being dropped into recovery shell

Das Seltsame ist, dass es versucht, nach dem unverschlüsselten Gerät zu suchen /dev/mapper/cryptroot, mich aber nicht nach dem Passwort fragt (das ich beim ersten cryptsetupAnmelden erstellt /dev/sda2habe). Daher kann es das unverschlüsselte Blockgerät natürlich nicht finden, da es mich nicht nach seinem Passwort gefragt hat. Können Sie mir bitte sagen, was ich falsch konfiguriert habe?

Antwort1

Ich hatte Erfolg mit cryptdevice=/dev/disk/by-uuid/<UUID_OF_LOGICAL_DEVICE>:cryptroot root=/dev/mapper/cryptrootden zusätzlichen Kerneloptionen in GRUB.

Es ist erwähnenswert, dass Sie möglicherweise einen Tippfehler gemacht haben, wenn Sie dies tun, ohne die UUID präzise zu kopieren und einzufügen (z. B. in einer Konsole/einem TTY). Hier ist ein Einzeiler, der sich auch schwer von der Konsole aus eintippen lässt, sich aber als einfacher erweisen könnte.

sed "s/\(GRUB_CMDLINE_LINUX=\"\)/\1cryptdevice=\/dev\/disk\/by-uuid\/$(blkid -o value -s UUID /dev/<LOGICAL_DEVICE>):cryptroot root=\/dev\/mapper\/cryptroot/" /etc/default/grub > ~/grub.defaults && mv ~/grub.defaults /etc/default/grub

Antwort2

Ihnen fehlt /etc/crypttab. Die CPIO-Hooks verweisen auf eine Partition, die dem Betriebssystem nicht bekannt ist.

/etc/crypttab

%{UUID von /dev/mapper/cryptroot} / ext4 rw,relatime,data=ordered,discard,luks - 0 1

Führen Sie dann das Grub-Update erneut aus.

verwandte Informationen