如果(root)是 F2FS,將 GRUB 安裝到加密分區不起作用
我正在嘗試使用加密
/boot
分區設置新的 Arch Linux 安裝,如下所述:https ://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29我正在創建三個分區
cgdisk
:/dev/sda1 - 類型 ESP (
ef00
) 大小 100MiB/dev/sda2 - 類型 Linux (
8300
) 大小 200MiB - 用於/boot
(加密後)/dev/sda3 - 類型 Linux LVM (
8e00
) 大小 12GiB - 用於/
(加密後)然後我使用這些命令:
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
我收到此錯誤:
為 x86_64 平台安裝。
grub-install:錯誤:無法獲取“/boot/efi”的規範路徑。
已經嘗試過:
- 安裝
fuse2
和mtools
包;- 在環境中重新創建
/boot/efi
目錄並重新掛載/dev/sda1
到它chroot
。將ext4用於根分區時,最後一個過程有效,並且 GRUB 安裝 - 甚至引導(奇怪的是,不需要重新安裝,只需
mkdir
)。但是對於 F2FS,這還不夠,儘管它設法將錯誤消息更改為:
為 x86_64 平台安裝。
grub-install:錯誤:未知文件系統。
根據 Arch Wiki ($$ 1 $$,$$ 2 $$) 應該可以將 F2FS 用於 root,前提是 GRUB 安裝到具有它支持的另一個文件系統的單獨分區。我的
/boot
分區是ext2
. 那麼,為什麼不安裝呢?非常感謝您的幫助。
解決方案是注意/etc/fstab
它的生成,因為genfstab
不添加條目/boot
並且/boot/efi
必須手動完成。之後
chroot
,我們不僅要重新掛載 ESP,還要重新掛載/boot
分區。然後grub-install
會工作。**更新:**安裝
/boot
和 ESP 應該在將根文件系統安裝到之後完成/mnt
,即# 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
這是一個邏輯問題。如果我們按該順序執行操作,
genfstab
將正確生成所有分區的條目,並且一切都會正常工作。