Após um dia de pesquisa, agora posso responder minha pergunta: sim, é possível, e você pode até usar essa partição como / boot e armazenar seus kernels / initramfs / etc. lá.
Requisitos:
- Grub > = 2,00 (1,98 e 1,99 não funcionam)
- O Grub deve ser instalado a partir de um kernel Linux, que tenha suporte para variáveis EFI (
CONFIG_EFI_VARS
compilado em ou como móduloefivars
) - Para criar a entrada de inicialização EFI, você precisará de
efibootmgr
Configuração:
Primeiro monte sua partição EFI em / boot
mount /dev/sdX1 /boot
Se você olhar para a entrada de montagem, verá que ela é simplesmente uma partição FAT (32). Em /boot
você deve encontrar um diretório efi
.
Como o grub irá 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 normalmente para /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.
Grub chama efibootmgr
automaticamente e cria uma entrada de boot 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 todos os Placa EFI)
A configuração adicional não difere da configuração usual do grub2, grub2-mkconfig
adicionará os módulos apropriados para a EFI ao seu grub.cfg
.
Janelas de carregamento em cadeia:
Como pedi uma inicialização dupla com o Windows, incluirei a configuração do grub para o carregamento 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
são necessários.
Além disso, a configuração da raiz não é necessária, essa informação é armazenada pelo próprio gerenciador de inicialização do Windows. Em vez disso, especifique o comando search
. Os parâmetros necessários para isso podem ser determinados por
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Isso lhe dará os parâmetros para a busca especificando a localização da partição EFI, ela deve ser algo como:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Em vez de informar chainloader
do número de setores a serem lidos, você precisará definir o caminho para o carregador EFI do Windows na partição EFI. Isso é o mesmo para todas as instalações do Windows EFI. A entrada resultante deve ter esta aparência:
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: Elas abrangem mais alguns casos, se você quiser inicializar a partir do EFI, vale a pena lê-las: