A instalação do GRUB na partição criptografada não funciona se (root) for F2FS

0

Estou tentando configurar uma nova instalação do Arch Linux com a partição /boot criptografada, conforme descrito aqui: link

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 esses 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:

Installing for the x86_64 platform.
grub-install: error: failed to get canonical path of '/boot/efi'.

Já tentei:

  • Instalando os pacotes fuse2 e mtools ;

  • Recriando o diretório /boot/efi e re-montando /dev/sda1 , enquanto no ambiente chroot .

Ao usar o ext4 para a partição raiz, este último procedimento funciona e o GRUB é instalado - e até inicializa (e curiosamente, a montagem não é necessária, apenas mkdir ).

Mas para o F2FS, isso não é suficiente, embora ele possa alterar a mensagem de erro para:

Installing for the x86_64 platform.
grub-install: error: unknown filesystem.

De acordo com o Arch Wiki ( [1] , [2] ) deve ser possível usar o F2FS para o root, desde que o GRUB esteja instalado em uma partição separada com outro sistema de arquivos suportado por ele. Minha partição /boot é ext2 . Então, por que não instala?

Aprecie sua ajuda imensamente .

    
por Marc.2377 30.05.2017 / 01:21

1 resposta

1

A solução é prestar atenção ao /etc/fstab em sua geração, pois genfstab não adiciona entradas para /boot e /boot/efi e deve ser feito manualmente.

Após chroot , devemos montar novamente não apenas o ESP, mas também a partição /boot . Então, grub-install funcionará.

Atualização: A montagem /boot e o ESP devem realmente ser feitos DEPOIS de montar o sistema de arquivos raiz em /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 irá gerar entradas corretamente para todas as partições e tudo vai funcionar bem.

    
por 30.05.2017 / 04:19