Я пытаюсь установить новую установку Arch Linux с зашифрованным разделом / boot
, как описано здесь: https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29
Я создаю три раздела с помощью cgdisk
:
/ dev / sda1 - Тип ESP ( ef00
) Размер 100 МБ
/ dev / sda2 - Тип Linux ( 8300
) Размер 200 МБ - для / boot
(после шифрования)
/ dev / sda3 - введите Linux LVM ( 8e00
) Размер 12 ГБ - для /
(после шифрования)
Затем я выполняю следующие команды:
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: error: не удалось получить канонический путь к '/ 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
будет работать.
Update: Монтирование /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
будет правильно генерировать записи для всех разделов, и все будет работать нормально.