Estoy intentando configurar una nueva instalación de Arch Linux con /boot
una partición cifrada, como se describe aquí:https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_.28GRUB.29
Estoy creando tres particiones con cgdisk
:
/dev/sda1 - Tipo ESP ( ef00
) Tamaño 100MiB
/dev/sda2 - Tipo Linux ( 8300
) Tamaño 200MiB - para /boot
(después del cifrado)
/dev/sda3 - Tipo Linux LVM ( 8e00
) Tamaño 12GiB - para /
(después del cifrado)
Luego sigo con estos 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
Recibo este error:
Instalación para la plataforma x86_64.
grub-install: error: no se pudo obtener la ruta canónica de '/boot/efi'.
Ya probado:
Instalación de los paquetes
fuse2
ymtools
;Volver a crear
/boot/efi
el directorio y volver/dev/sda1
a montarlo, mientras se encuentra en elchroot
entorno.
Cuando usasext4para la partición raíz, este último procedimiento funciona y GRUB se instala, e incluso arranca (y, curiosamente, no es necesario volver a montarlo, solo mkdir
).
Pero para F2FS, no es suficiente, aunque logra cambiar el mensaje de error a:
Instalación para la plataforma x86_64.
grub-install: error: sistema de archivos desconocido.
Según The Arch Wiki ([1],[2]) debería ser posible usar F2FS para root, siempre que GRUB esté instalado en una partición separada con otro sistema de archivos que admita. Mi /boot
partición es ext2
. Entonces, ¿por qué no se instala?
Aprecio tu ayudainmensamente.
Respuesta1
La solución es prestar atención al /etc/fstab
momento de su generación, ya que genfstab
no agrega entradas para /boot
y /boot/efi
debe hacerse a mano.
Después chroot
, debemos volver a montar no solo el ESP, sino también la /boot
partición. Entonces grub-install
funcionará.
Actualizar:El montaje /boot
y el ESP realmente deberían realizarse DESPUÉS de montar el sistema de archivos raíz en /mnt
, es decir
# 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 una cuestión de lógica. Si hacemos las cosas en ese orden, genfstab
se generarán correctamente las entradas para todas las particiones y todo funcionará bien.