Después de un día de investigación, ahora puedo responder mi propia pregunta: sí, es posible, e incluso puede usar esa partición como / boot y almacenar sus núcleos / initramfs / etc. allí.
Requisitos:
- Grub> = 2.00 (1.98 y 1.99 no funcionan)
- Grub debe instalarse desde un kernel de Linux, que tenga soporte para variables EFI (
CONFIG_EFI_VARS
compilado en o como módulo efivars
)
- Para crear la entrada de arranque EFI necesitará
efibootmgr
Preparar:
Primero monte su partición EFI en / boot
mount /dev/sdX1 /boot
Si observa la entrada de montaje, verá que es simplemente una partición FAT (32). Debajo de /boot
usted debe encontrar un directorio efi
.
Como grub llamará efibootmgr
, debe cargar evivars
, si no está compilado en el núcleo:
modprobe efivars
Ahora puedes instalar grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub instala sus archivos como de costumbre /boot/grub2
. Si todo funcionó correctamente, ahora también debería tener una carpeta /boot/efi/grub2
o /boot/efi/your_distros_name
. Con --bootloader-id=isert_name_here
usted también puede especificar el nombre de la carpeta usted mismo.
Grub llama efibootmgr
automáticamente y crea una entrada de arranque con ese nombre en el menú de arranque de EFI (en mi caso, eso significa que aparece como un dispositivo de arranque en el menú de EFI, no estoy seguro de si este es el caso en cada placa EFI)
La configuración adicional no difiere de la configuración habitual de grub2, grub2-mkconfig
agregará los módulos apropiados para EFI a su grub.cfg
.
Ventanas de carga en cadena:
Como solicité un arranque dual con Windows, incluiré la configuración de grub para cargarlo en cadena:
La carga en cadena de una instalación de Windows en EFI es ligeramente diferente de la de un disco MBR. No necesitará los módulos ntfs
o part_mbr
, en cambio, fat
y part_gpt
son necesarios.
Además, no es necesario configurar la raíz, esta información es almacenada por el propio administrador de arranque de Windows. En su lugar, especifique el search
comando. Los parámetros necesarios para ello pueden determinarse por
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Esto le dará los parámetros de búsqueda que especifican la ubicación de la partición EFI, debería ser algo así como:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
En lugar de indicar chainloader
la cantidad de sectores a leer, deberá establecer la ruta al cargador EFI de Windows en la partición EFI. Esto es lo mismo para todas las instalaciones de Windows EFI. La entrada resultante debería tener este aspecto:
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
Fuentes: Estos cubren algunos casos más, si desea iniciar desde EFI, vale la pena leerlos:
mount /dev/sdXX /boot/efi
, luego seguí esto y corríbcdedit /set {bootmgr} path \EFI\fedora\shim.efi
de windows a bootstrap EFI.