Ich versuche, eine neue Arch Linux-Installation mit verschlüsselter Partition einzurichten /boot
, wie hier beschrieben:https://wiki.archlinux.org/index.php/Dm-crypt/Verschlüsseln_eines_gesamten_Systems#Verschlüsselte_Bootpartition_.28GRUB.29
Ich erstelle drei Partitionen mit cgdisk
:
/dev/sda1 – Typ ESP ( ef00
) Größe 100 MiB
/dev/sda2 – Typ Linux ( 8300
) Größe 200 MiB – für /boot
(nach der Verschlüsselung)
/dev/sda3 – Typ Linux LVM ( 8e00
) Größe 12 GiB – für /
(nach der Verschlüsselung)
Dann folge ich mit diesen Befehlen:
mkfs.fat -F32 /dev/sda1
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptoboot
mkfs.ext2 /dev/mapper/cryptoboot
mkdir /mnt/boot
mount /dev/mapper/cryptoboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptosystem
mkfs.f2fs /dev/mapper/cryptosystem
mount /dev/mapper/cryptosystem /mnt
# edit "/etc/pacman.d/mirrorlist" as needed
pacstrap /mnt base grub-efi-x86_64 efibootmgr dosfstools f2fs-tools
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
# remember to configure time, locale, language and hostname
# edit "/etc/mkinitcpio.conf"
# HOOKS="base udev autodetect modconf block keymap encrypt lvm2 filesystems keyboard fsck"
mkinitcpio -p linux
# edit "/etc/default/grub"
# GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:lvm"
# GRUB_ENABLE_CRYPTODISK=y
grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck
Ich erhalte diese Fehlermeldung:
Installation für die x86_64-Plattform.
grub-install: Fehler: Kanonischer Pfad von „/boot/efi“ konnte nicht abgerufen werden.
Schon versucht:
Installieren der
fuse2
undmtools
Pakete;Verzeichnis neu erstellen
/boot/efi
und erneut/dev/sda1
darin mounten, während man sich in derchroot
Umgebung befindet.
Beim Benutzenext4Für die Root-Partition funktioniert dieses letzte Verfahren und GRUB wird installiert – und sogar gebootet (und seltsamerweise ist ein erneutes Mounten nicht erforderlich, nur mkdir
).
Für F2FS reicht dies jedoch nicht aus, obwohl die Fehlermeldung wie folgt geändert werden kann:
Installation für die x86_64-Plattform.
grub-install: Fehler: unbekanntes Dateisystem.
Laut The Arch Wiki ([1],[2]) sollte es möglich sein, F2FS als Root zu verwenden, vorausgesetzt, dass GRUB auf einer separaten Partition mit einem anderen Dateisystem installiert ist, das es unterstützt. Meine /boot
Partition ist ext2
. Warum lässt es sich also nicht installieren?
Schätze deine Hilfeimmens.
Antwort1
/etc/fstab
Die Lösung besteht darin , bei der Generierung auf zu achten , da genfstab
keine Einträge für /boot
und hinzugefügt werden /boot/efi
und dies manuell erfolgen muss.
Anschließend müssen wir nicht nur das ESP, sondern auch die Partition chroot
neu mounten . Dann klappt es./boot
grub-install
Aktualisieren:Das Mounten /boot
und das ESP sollten wirklich NACH dem Mounten des Root-Dateisystems erfolgen /mnt
, d.h.
# format the ESP
mkfs.fat -F32 /dev/sda1
# set up LUKS for the boot partition
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptoboot
mkfs.ext2 /dev/mapper/cryptoboot
# same for the root partition
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptosystem
mkfs.f2fs /dev/mapper/cryptosystem
# mount root, and only then, mount /boot and the ESP, in that order
mount /dev/mapper/cryptosystem /mnt
mkdir /mnt/boot
mount /dev/mapper/cryptoboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# edit "/etc/pacman.d/mirrorlist", then continue with pacstrap etc
Es ist eine Frage der Logik. Wenn wir die Dinge in dieser Reihenfolge tun, genfstab
werden Einträge für alle Partitionen korrekt generiert und alles funktioniert einwandfrei.