Inicialize no Linux, digite os três comandos a seguir em um shell e poste a saída aqui:
ls -l 'find /boot/efi -iname "*\.efi"'
ls -l 'find /boot/efi -iname "*\.bkp"'
sudo parted /dev/sda print
Note que são back-ticks (à esquerda da tecla "1" na maioria dos teclados) em torno dos comandos find
.
O resultado deve ser uma lista de todos os carregadores de boot em seu ESP, incluindo os nomes regulares e as versões renomeadas criadas pelo Boot Repair; e uma lista de todas as partições no seu disco.
Além disso, que tipo de computador você está usando? (Marca e modelo.) Ele veio com o Windows 8 ou você mesmo instalou?
Infelizmente, alguns fabricantes estão jogando jogos muito irritantes com seus gerenciadores de inicialização em computadores Windows 8 pré-carregados. IMHO, extraindo essas instalações e começando do zero, parece cada vez mais uma boa solução.Edite / responda com novas informações:
Não há nada em sua saída que seja estranho ou inesperado, então parece que algo no Windows está "reparando" o que ele vê como seu próprio gerenciador de inicialização "quebrado". Isso requer alguma elaboração, que ajudará você a entender o que está acontecendo:
Uma implementação EFI (ou UEFI, que é apenas EFI 2.x) deve verificar as entradas da NVRAM para decidir qual carregador de inicialização (um arquivo com extensão .efi
) deve ser executado quando for inicializado. Algumas implementações são quebradas, no entanto, e só inicializarão o carregador de inicialização EFI/BOOT/bootx64.efi
ou EFI/Microsoft/Boot/bootmgfw.efi
. Outros inicializarão outros carregadores de inicialização, mas somente se eles tiverem o nome "Windows Boot Manager" ou "Red Hat Enterprise Linux".
Para contornar esse tipo de bug, a ferramenta de Reparo de Inicialização do Ubuntu implementa uma correção que é pelo menos tão feia e confusa quanto o bug que ela ignora: renomeia esses dois carregadores de inicialização padrão com .bkp
extensões, coloca cópias do GRUB em seu lugar e ajusta o GRUB para que ele inicie os carregadores de inicialização do Windows usando seus novos nomes. Isso obtém a inicialização do GRUB, mas de uma maneira que o Windows não entende e pode tentar "consertar" a si mesmo. Eu acho que isso é o que está acontecendo - quando o Windows é inicializado, ele vê que seu gerenciador de inicialização foi sobrescrito por outro e por isso tenta corrigir o problema.
Eu recomendo que você tente o seguinte:
- Verifique o site do fabricante para ver se há uma atualização de firmware. Se houver, atualize seu firmware para a versão mais recente, caso haja uma correção de bug para esse tipo de erro de inicialização.
- Inicialize o Windows e reinicie para verificar que, quando você reinicializar, vá direto para o Windows. Você quer começar a partir deste ponto, porque é mais padrão do que o modo que o Boot Repair configura.
- Inicialize um disco de emergência do Linux no modo EFI. (O disco de instalação do Ubuntu deve funcionar bem para isso.)
- Instale o utilitário
efibootmgr
, se necessário. No live CD do Ubuntu, você faria isso digitandosudo apt-get install efibootmgr
. - Digite
sudo efibootmgr -c -l \EFI\ubuntu\shimx64.efi -L "Windows Boot Manager" -p 2
. Tenha o cuidado de digitar esse comando exatamente conforme especificado, incluindo as barras invertidas duplicadas como separadores de caminho de diretório. Isso deve configurar o GRUB para ser iniciado como o carregador de inicialização padrão, fornecendo o rótulo de firmware "Gerenciador de inicialização do Windows" caso você receba esse bug. (Você poderia tentar com um nome menos enganoso e, na maioria dos sistemas, isso funcionaria, mas talvez não para você.) Se você não estiver usando o Secure Boot, poderá substituirgrubx64.efi
porshimx64.efi
neste comando, mas dado queshimx64.efi
está presente no seu sistema, a minha suspeita é que você está usando o Secure Boot. - Reinicie e teste.
Se funciona neste momento, então ótimo. Se ele inicializar no GRUB, mas o GRUB não puder iniciar o Windows, talvez seja necessário ajustar a configuração do GRUB para que ele faça referência a EFI/Microsoft/Boot/bootmgfw.efi
em vez de EFI/Microsoft/Boot/bootmgfw.efi.bkp
.
Se você não conseguir que seu sistema inicie o GRUB desta forma, você pode ter um firmware danificado por um cérebro combinado com algo no Windows que está automaticamente "consertando" um carregador de inicialização "danificado" em cada inicialização, fechando sua melhor (embora feia) avenida de reparo. Nesse caso, tenho várias sugestões adicionais:
- Se o computador for novo o suficiente, devolva-o à loja e obtenha um novo. Deixe isso bem claro, tanto para a loja quanto para o fabricante, por que você está devolvendo.
- Procure o que quer que esteja no Windows esteja verificando e "reparando" o seu carregador de boot e desative-o. Você deve então poder usar o Reparo de Inicialização do Ubuntu, ou fazer algo similar manualmente, para fazer tudo funcionar.
- Crie um segundo ESP e instale o GRUB (ou outro carregador de inicialização do Linux) nele usando os nomes da Microsoft. Ao fazer malabarismos com números de identificação de partição (usando o gdisk, por exemplo - use a opção
t
no menu de especialistas), você pode conseguir que o firmware use o gerenciador de inicialização desejado enquanto faz o Windows ver seu próprio gerenciador de inicialização . Isso é altamente especulativo; pode não funcionar de todo. - Crie uma unidade flash USB com meu gerenciador de inicialização do rEFInd. Você poderá, então, inseri-lo no computador e inicializar a partir do dispositivo USB para obter o rEFInd, que deve então detectar o Windows e o GRUB e dar a você a opção de inicialização. Com uma pequena reconfiguração extra, você pode fazer o boot do Linux diretamente. Se você pode configurar seu firmware para inicializar a partir do dispositivo USB por padrão, você pode deixar a unidade USB conectada permanentemente para uma solução permanente.
- Instale o rEFInd ou o GRUB do Windows. Estou longe disso, mas se você instalar um gerenciador de partida do Windows (como descrito no site do rEFInd), ele poderá ignorar qualquer coisa no Windows é fazer malabarismo com os carregadores de inicialização, permitindo que o seu gerenciador de inicialização preferido seja executado por padrão.
Observe que, se você usar qualquer solução que envolva o rEFInd, talvez seja necessário configurá-lo com Secure Boot, envolve envolver-se em alguns aros extras. (Esta situação irá melhorar a tempo, mas por enquanto ainda é um pouco estranho.) Alternativamente, você pode desabilitar o Secure Boot no seu firmware.
Espero que isso ajude!