Wie bringe ich Grub dazu, cryptomount automatisch auszuführen, um seine Konfigurationsdatei zu laden (verschlüsselter Start)

Wie bringe ich Grub dazu, cryptomount automatisch auszuführen, um seine Konfigurationsdatei zu laden (verschlüsselter Start)

Ich versuche also, eine vollständig verschlüsselte Bootpartition zum Laufen zu bringen. Ich verwende Funtoo, greife aber hauptsächlich auf das Arch-Wiki zurück, um Hilfe zu erhalten.

Also habe ich mich zu etwas Verrücktem/Umstrittenem entschlossen: keine separaten Boot-/Root-Partitionen. Mein Setup sieht folgendermaßen aus:

/dev/nvme0n1p1  - EFI parition
/dev/nvme0n1p2  - Swap
/dev/nvme0n1p3  - Encrypted /

In meinem /etc/default/grubhabe ich folgendes:

GRUB_ENABLE_CRYPTODISK=y
GRUB_PRELOAD_MODULES="luks cryptodisk"
GRUB_CMDLINE_LINUX="luks enc_root=/dev/nvme0n1p3 root=/dev/mapper/enc_root"

Alle Linux-Argumente sind fürbesser-initramfs. Ich füge einen Schlüssel zum Dateisystem in die Ramdisk ein, damit ich nicht zweimal nach meinem Passwort gefragt werde.

Ich habe Grub wie folgt installiert:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheck --boot-directory=/boot/efi/EFI

Im aktuellen Zustand erhalte ich eine Eingabeaufforderung von Grub zur Rettung. Die Konfigurationsdatei kann nicht gefunden werden (sie befindet sich auf der verschlüsselten Boot-/Root-Diskette). Daher führe ich die folgenden Befehle aus:

insmod luks
cryptomount (hd1,gpt3)
set root=(crypto0)
configfile (crypto)/boot/grub/grub.cfg

..und ich habe ein vollständig bootendes/funktionierendes System! :)

Meine Frage lautet also: Wie konfiguriere ich den Grub EFI Loader, damit er versucht, die verschlüsselte Partition automatisch zu laden (crypt0)und ihre Konfigurationsdatei zu lesen?

Hinweis: Grub identifiziert die Festplatte als (hd1,gpt3)höchstwahrscheinlich, da mein USB-Stick noch eingesteckt ist. Das sollte sich ändern, (hd0,gpt3)wenn ich ihn ausstecke und neu starte.

Antwort1

Es stellte sich heraus, dass der Geräte-Mapper für Grub unter Gentoo/Funtoo nicht standardmäßig aktiviert ist. Ich habe Folgendes hinzugefügt /etc/portage/package.use:

sys-boot/grub device-mapper

Dann habe ich Grub erneut aufgerufen, ausgeführt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheckund neu gestartet und fand einen Bildschirm zur Abfrage des Luks-Passworts. Nachdem ich es eingegeben hatte, bootete alles problemlos.

Besonderer Dank geht an frostschutz, der die Lösung in diesem Thread bereitgestellt hat:

https://forums.gentoo.org/viewtopic.php?p=7972812#7972812

verwandte Informationen