Die Installation von GRUB auf einer verschlüsselten Partition funktioniert nicht, wenn (root) F2FS ist

Die Installation von GRUB auf einer verschlüsselten Partition funktioniert nicht, wenn (root) F2FS ist

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 fuse2und mtoolsPakete;

  • Verzeichnis neu erstellen /boot/efiund erneut /dev/sda1darin mounten, während man sich in der chrootUmgebung 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 /bootPartition ist ext2. Warum lässt es sich also nicht installieren?

Schätze deine Hilfeimmens.

Antwort1

/etc/fstabDie Lösung besteht darin , bei der Generierung auf zu achten , da genfstabkeine Einträge für /bootund hinzugefügt werden /boot/efiund dies manuell erfolgen muss.

Anschließend müssen wir nicht nur das ESP, sondern auch die Partition chrootneu mounten . Dann klappt es./bootgrub-install

Aktualisieren:Das Mounten /bootund 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, genfstabwerden Einträge für alle Partitionen korrekt generiert und alles funktioniert einwandfrei.

verwandte Informationen