La respuesta es simple. La partición del sistema EFI (ESP) debe ser FAT32 (FAT16 o incluso FAT12 también funcionarán para la UEFI más adecuada; en su mayoría se muestran como vfat
en Linux) en lugar de ext2:
mkfs.fat -F32 /dev/sda2
FWIW, si no va a instalar grub i386-pc (para arranque BIOS/CSM), no necesita la partición "BIOS boot". Solo es requerido por grub i386-pc
(pero no grub x86_64-efi
o i386-efi
) en GPT.
Realmente no importa si usas el ESP para /boot
. Si lo hace, debe ejecutar:
grub2-install --efi-directory /boot
Si lo montas en /boot/efi
en su lugar, debe ejecutar:
grub2-install --efi-directory /boot/efi
--boot-directory /boot
está implícito (es decir, predeterminado); No importa si /boot
es el ESP, otra partición separada o un directorio en el /
sistema de archivos.
Es posible que ni siquiera necesite volver a hacer chroot para realizar grub2-install
; Por ejemplo, montó sda4
, tu partición para /
, en /mnt
; Y LUEGO, montado sda2
, tu ESP, en /mnt/boot/efi
, entonces simplemente puede ejecutar:
grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi
Aunque grub2-mkconfig
debe ejecutarse en chroot AFAIK. Pero si planeas escribir un grub.cfg
simple y limpio usted mismo en su lugar (que es la única forma elegante de usar grub2), entonces esto estará fuera de su preocupación.
El problema parecía ser mezclar y combinar BIOS, EFI, MBR y GPT. Traté de seguir las guías y usar el GPT, pero hubo algunas dependencias que no pude resolver porque soy demasiado inexperto. Ni siquiera me queda claro si el núcleo se creó con soporte GPT (a través de la opción de configuración CONFIG_EFI_PARTITION
).
Cuando dejé GPT y EFI y cambié a BIOS y MBR puramente, pude iniciar la máquina resultante. Se supone que BIOS y GPT son una combinación válida, pero me pregunto si funciona en la práctica (ver, por ejemplo, Opciones del cargador de arranque).
Aquí está la configuración con la que pude ejecutar la máquina:
$ parted
GNU Parted 3.2
Using /dev/sda
(parted) print
Model: ATA VMware Virtual I (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 135MB 134MB primary ext2 boot
2 135MB 19.5GB 19.3GB primary ext4
3 19.5GB 21.5GB 2012MB primary linux-swap(v1)
La partición 1 es /boot
, la partición 2 es /
y la partición 3 es swap
.