Estou tentando configurar uma nova instalação do Arch Linux com /boot
partição criptografada, conforme descrito aqui:https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29
Estou criando três partições com cgdisk
:
/dev/sda1 - Tipo ESP ( ef00
) Tamanho 100MiB
/dev/sda2 - Tipo Linux ( 8300
) Tamanho 200MiB - para /boot
(após criptografia)
/dev/sda3 - Tipo Linux LVM ( 8e00
) Tamanho 12GiB - para /
(após criptografia)
Então estou seguindo com estes comandos:
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
Estou recebendo este erro:
Instalando para a plataforma x86_64.
grub-install: erro: falha ao obter o caminho canônico de '/boot/efi'.
Já tentei:
Instalando os pacotes
fuse2
emtools
;Recriando
/boot/efi
o diretório e remontando-/dev/sda1
o, enquanto estiver nochroot
ambiente.
Ao usarext4para a partição raiz, este último procedimento funciona e o GRUB é instalado - e até inicializado (e por incrível que pareça, a remontagem não é necessária, apenas mkdir
).
Mas para o F2FS não é suficiente, embora consiga alterar a mensagem de erro para:
Instalando para a plataforma x86_64.
grub-install: erro: sistema de arquivos desconhecido.
De acordo com o Arch Wiki ([1],[2]) deve ser possível usar F2FS para root, desde que o GRUB seja instalado em uma partição separada com outro sistema de arquivos compatível. Minha /boot
partição é ext2
. Então, por que ele não instala?
Agradeço sua ajudaimensamente.
Responder1
A solução é prestar atenção no /etc/fstab
momento da sua geração, pois genfstab
não adiciona entradas para /boot
e /boot/efi
deve ser feito manualmente.
Depois chroot
, devemos remontar não só o ESP, mas também a /boot
partição. Então grub-install
funcionará.
Atualizar:A montagem /boot
e o ESP devem realmente ser feitos APÓS a montagem do sistema de arquivos raiz /mnt
, ou seja
# 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
É uma questão de lógica. Se fizermos as coisas nessa ordem, genfstab
geraremos entradas corretamente para todas as partições e tudo funcionará perfeitamente.