grub-efi se recusa a fazer o chainload do Windows 8.1

0

Eu instalei o LMDE (com o grub no MBR) depois de instalar o Windows 8.1. Em seguida, instalei o pacote grub-efi e adicionei as opções personalizadas do Windows:

#!/bin/sh
exec tail -n +3 $0

menuentry "Windows" {
    search --fs-uuid --no-floppy --set=root A89A-7F4C
    chainloader (${root})/EFI/Boot/bkpbootx64.efi
}
menuentry "Windows (backup bootloader)" {
    search --fs-uuid --no-floppy --set=root A89A-7F4C
    chainloader (${root})/EFI/Microsoft/Boot/bkpbootmgfw.efi
}

Estas são basicamente uma sobra da minha configuração antiga do Ubuntu. No entanto, o grub está se recusando a carregá-los, reclamando sobre a assinatura inválida. O que eu faço agora?

    
por Alexei Averchenko 02.11.2013 / 04:36

1 resposta

2

Uma reclamação de "assinatura inválida" soa como um erro de inicialização segura. Não tenho certeza de onde o Ubuntu está com isso, mas algumas versões do GRUB se recusam a carregar o Windows quando o Secure Boot está ativo, o que exige um desabilitando o Secure Boot ou usando outro gerenciador de inicialização (como o que é incorporado na maioria dos EFIs, gummiboot, ou rEFInd, em vez de ou além do GRUB A solução mais fácil é provavelmente desabilitar o Secure Boot. Se você quiser manter o Secure Boot ativo, a solução mais simples provavelmente será instalar o rEFInd; no entanto, você deve ler a documentação do rEFInd sobre o Secure Arranque, uma vez que você precisará passar por alguns aros extras para fazê-lo funcionar.

EDIT: Primeiro, ao reler sua descrição, você menciona tanto o GRUB no MBR (que implica uma instalação GRUB no modo BIOS) quanto o grub-efi pacote (que é a versão EFI do GRUB). Suas sub-rotinas do Windows GRUB são claramente destinadas a um GRUB no modo EFI. Se você tiver ambos instalados, é possível que você esteja iniciando a versão do GRUB no modo BIOS acidentalmente, o que falharia ao iniciar as entradas do Windows no modo EFI. Se esta é a causa raiz, você precisará encontrar uma maneira de forçar o lançamento da versão EFI do GRUB. Você pode usar as configurações de inicialização do gerenciador de inicialização ou do firmware do seu computador para fazer isso; ou você pode precisar eliminar o GRUB no MBR digitando sudo dd if=/dev/zero of=/dev/sda bs=440 count=1 em uma janela do Terminal. Seja muito cuidadoso com este comando; omitir ou digitar incorretamente um parâmetro pode causar sérios danos ao seu disco rígido. As opções bs= e count= são particularmente importantes.

Se você estiver lançando a versão EFI do GRUB e ainda tiver problemas, tente a seguinte entrada em /etc/grub.d/40_custom (e execute sudo update-grub depois de fazer a alteração):

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

Altere (hd0,gpt1) para qualquer identificador do GRUB para sua ESP (EFI System Partition). Além disso, se você executou o Boot Repair no passado (conforme sugerido pelo seu exemplo), talvez seja necessário alterar bootmgfw.efi para bkpbootmgfw.efi . É concebível que o código do sistema de arquivos FAT nas entradas existentes esteja errado, ou que haja algum outro detalhe errado, e é por isso que estou sugerindo usar essa entrada, que funcionou para mim no passado, como modelo. (Essas entradas do carregador de carga do GRUB são notoriamente complicadas.)

Se isso falhar, tente usar a unidade flash USB ou a versão de CD-R do meu gerenciador de inicialização do rEFInd. Se isso puder boot do Windows, você pode instalar a versão Debian do rEFInd no seu disco rígido. Ele então assumirá o GRUB, o qual você não precisará mais. rEFInd é muito mais fácil de manter manualmente que o GRUB; O GRUB é fácil apenas por causa de uma grande quantidade de scripts de configuração que fazem a maioria das personalizações necessárias para a maioria das instalações.

    
por 02.11.2013 / 18:30