O GRUB2 pode compartilhar a partição do sistema EFI com o Windows?

28

Eu tenho uma instalação do Windows 7 no GPT, que já tem uma partição do sistema EFI.

Agora estou tentando instalar um Linux em um disco rígido separado, que também é formatado em GPT. Eu não encontrei nenhuma maneira de trabalhar para obter o arranque do GRUP sem partição do sistema EFI, então minha pergunta é:

É possível para o grub2 usar a mesma partição do sistema EFI como janelas? Como eu digo ao grub2 para usá-lo?

Para esclarecer minha configuração:

gpt /dev/sda:
    1 EFI System partition created by windows (100MB)
    2 "Microsoft reserved partition" (200MB)
    3 Windows root (rest of disk)

gpt /dev/sdb:
    # After answering my own question: this partition is not needed
    1 boot partition containing grub, kernels etc.(32MB)
    2 crypto LVM partition (rest of disk)

Eu quero que o grub2 use a partição /dev/sda1 EFI existente.

PS: Minha placa-mãe é compatível com EFI.

    
por crater2150 26.09.2012 / 07:45

1 resposta

21

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ódulo efivars )
  • 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:

por 27.09.2012 / 08:28