Após um dia de pesquisa, agora posso responder minha própria pergunta: sim, é possível, e você pode até usar essa partição como / boot e armazenar seus kernels / initramfs / etc. há.
Requisitos:
- Grub> = 2.00 (1.98 e 1.99 não funcionam)
- O Grub deve ser instalado a partir de um kernel do Linux, que tenha suporte para variáveis EFI (
CONFIG_EFI_VARS
compiladas no ou como módulo efivars
)
- Para criar a entrada de inicialização EFI, você precisará
efibootmgr
Configuração:
Primeiro monte sua partição EFI no / boot
mount /dev/sdX1 /boot
Se você olhar para a entrada mount, verá que ela é simplesmente uma partição FAT (32). Sob /boot
você deve encontrar um diretório efi
.
Como o grub chamará efibootmgr
, você deve carregar evivars
, se não estiver compilado no kernel:
modprobe efivars
Agora você pode instalar o grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
O Grub instala seus arquivos como de costume /boot/grub2
. Se tudo funcionou corretamente, agora você também deve ter uma pasta /boot/efi/grub2
ou /boot/efi/your_distros_name
. Com --bootloader-id=isert_name_here
você também pode especificar o nome da pasta.
O Grub chama efibootmgr
automaticamente e cria uma entrada de inicialização com esse nome no menu de inicialização EFI (no meu caso, isso significa que ele aparece como um dispositivo inicializável no menu EFI, não tenho certeza se esse é o caso em todas as placas EFI)
Uma configuração adicional não difere da configuração usual do grub2, grub2-mkconfig
adicionará os módulos apropriados para o EFI ao seu grub.cfg
.
Windows de carregamento em cadeia:
Como eu pedi uma inicialização dupla com o Windows, incluirei a configuração do grub para carregá-la em cadeia:
O carregamento em cadeia de uma instalação do Windows no EFI é um pouco diferente de um em um disco MBR. Você não precisará dos módulos ntfs
ou part_mbr
, em vez disso, fat
e part_gpt
é necessário.
Além disso, a configuração de raiz não é necessária, essas informações são armazenadas pelo próprio gerenciador de inicialização do Windows. Em vez disso, especifique o search
comando. Os parâmetros necessários para isso podem ser determinados por
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Isso fornecerá os parâmetros para pesquisa, especificando o local da partição EFI, e deve ser algo como:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Em vez de informar chainloader
o número de setores a serem lidos, será necessário definir o caminho para o carregador EFI do Windows na partição EFI. É o mesmo para todas as instalações do Windows EFI. A entrada resultante deve ficar assim:
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
}
Fontes: abrangem mais alguns casos; se você deseja inicializar a partir da EFI, vale a pena ler:
mount /dev/sdXX /boot/efi
, segui -a e corribcdedit /set {bootmgr} path \EFI\fedora\shim.efi
do windows para inicializar o EFI.