Caminho de arquivo EFI inválido

11

Acabei de instalar o Ubuntu 12 no meu novo laptop (com o Win7 64bit pré instalado) no modo EFI e agora não consigo mais carregar o Win7 (o Ubuntu carrega muito bem no grub). Quando seleciono a entrada do Windows 7 no menu grub, recebo este erro:

Invalid EFI file path

A entrada grub.cfg (gerada pelo boot-repair) é:

menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
    insmod part_gpt
    insmod ntfs
    set root='(hd0,gpt3)'
    search --no-floppy --fs-uuid --set=root B8449665449625E2
    chainloader +1
}

Esta é a saída separada:

GNU Parted 2.3
Viene usato /dev/sda
Benvenuti in GNU Parted. Digitare "help" per l'elenco dei comandi.
(parted) print list
Modello: ATA ST9500325AS (scsi)
Disco /dev/sda: 500GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: gpt

Numero  Inizio  Fine   Dimensione  File system  Nome                  Flag
 5      1049kB  106MB  105MB       fat32                              avvio
 3      345MB   200GB  200GB       ntfs         Basic data partition
 1      200GB   200GB  1049kB                                         bios_grub
 2      200GB   496GB  296GB       ext4
 4      496GB   500GB  4172MB

A partição EFI de inicialização, montada como

/dev/sda5 on /boot/efi type vfat (rw) ) 

possui os seguintes arquivos (excluindo a pasta grub e outros arquivos na raiz da inicialização):

./efi
./efi/efi
./efi/efi/boot
./efi/efi/boot/bootx64.efi
./efi/efi/ubuntu
./efi/efi/ubuntu/grubx64.efi
./efi/efi/Microsoft
./efi/efi/Microsoft/Boot
./efi/efi/Microsoft/Boot/bootmgfw.efi.grb
./efi/efi/Microsoft/Boot/bootmgfw.efi
./efi/efi/Microsoft/Boot/bootx64.efi.grb
./efi/efi/Microsoft/Boot/bootx64.efi

Como posso consertar isso ?

obrigado

Simone Margaritelli
fonte

Respostas:

6

Sua entrada do GRUB para Windows é apropriada para uma inicialização no modo BIOS, mas não para uma inicialização no modo EFI. Este é um bug do GRUB. Você pode tentar substituir a entrada por algo como o seguinte:

menuentry "Windows 7" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt5)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Não garanto que isso funcione, mas pode. Caso isso /etc/grub.d/40_customaconteça , adicione essa entrada para que ela seja criada novamente sempre que o Ubuntu atualizar sua configuração do GRUB.

Outra opção é usar um gerenciador de inicialização diferente, além ou em vez do GRUB. O rEFInd, por exemplo, detectará automaticamente o Windows e o GRUB; e se você estiver usando o kernel 3.3.0 ou posterior (fornecido com o Ubuntu 12.10, mas não com o Ubuntu 12.04), poderá inicializar o Linux diretamente com o rEFInd, ignorando o GRUB completamente. O gummiboot é outra opção com recursos de inicialização semelhantes, mas requer mais manutenção manual se você deseja inicializar o Linux diretamente com o gummiboot.

Rod Smith
fonte
Usando essa entrada de menu, me envia do grub para uma tela preta e volta ao grub novamente :(
Simone Margaritelli
refind me dá a opção de janelas por se eu escolhê-lo grub menu é aberto Oo
Simone Margaritelli
1
Parece que o Ubuntu renomeou o gerenciador de inicialização do Windows e se instalou em seu lugar! Meu palpite é que o EFI/Microsoft/Boot/bootmgfw.efi.grbarquivo no ESP é o verdadeiro carregador de inicialização do Windows, portanto, renomear bootmgfw.efipara outra coisa e renomear bootmgfw.efi.grbnovamente para bootmgfw.efi o corrigirá. Você pode verificar os tamanhos dos arquivos e EFI/ubuntu/grubx64.efipara verificar isso ou usar diffpara compará-los. FWIW, os desenvolvedores do Ubuntu podem ter feito isso para solucionar bugs em algumas implementações de EFI, mas é bastante impertinente da parte deles!
Rod Smith
1
No meu laptop, tive que set root=(hd0,gpt1)fazê-lo porque é onde meu DELL mantém sua partição EFI.
Mutant Bob
Não se iluda, porque o preenchimento automático da guia pode ver os rótulos gpt etc. que os usarão para inicializar. O insmod part_gpté necessário. Se você está aqui para uma correção de carregamento em cadeia não-GRUB do Windows e seu caminho está correto, essa é sua resposta.
SleighBoy 18/11/19
2

Finalmente resolvi formatar e reinstalar tudo do zero ... basicamente (não sei por que) o grub substituiu o carregador do Windows 7, esse era o problema.

Simone Margaritelli
fonte
1
O Ubuntu costumava ter um bug em que limpava o ESP, mas achei que isso foi corrigido. Talvez esteja demorando em algumas circunstâncias. :-( Uma dica: Faça backup de todo o seu ESP. Dessa forma, se algo estranho acontecer, você poderá restaurá-lo no futuro. (A EFI não depende do código do setor de inicialização, portanto, um backup no nível do arquivo funciona bem.)
Rod Smith