O Windows 8 altera o GRUB2 em cada inicialização!

7

Instalei o Windows 8 e o Ubuntu 12.10 com o estilo UEFI (win8 primeiro e depois ubuntu). O GRUB2 me mostra as entradas do Ubuntu e do Win8.

Se eu inicializar no Ubuntu, tudo bem. Eu poderia reiniciar a qualquer momento, eu vou ver o GRUB2 inalterado.

A história muda quando eu inicio no Win8. Quando eu inicio no Win8 usando o GRUB2, ele me leva ao gerenciador de inicialização do Windows (que tem apenas a entrada do Windows 8). Eu bati no Windows e ele inicializa bem. Quando eu reinicio, não há GRUB2 nem Win loader. Não possui um gerenciador de inicialização.

Eu inicializei um LiveCD e baixei o reparo de inicialização e tudo está de volta. É um ciclo sem fim.

O GRUB2 deve carregar o gerenciador de partida Win? O que posso fazer para corrigir isso?

Mais informações:

USER@MACHINE:~$ ls -l 'find /boot/efi -iname "*\.efi"'

-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
-rwxr-xr-x 1 root root 1350896 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgr.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1263856 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/memtest.efi
-rwxr-xr-x 1 root root  897400 Dec  9 21:41 /boot/efi/EFI/ubuntu/grubx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/ubuntu/shimx64.efi

USER@MACHINE:~$ ls -l 'find /boot/efi -iname "*\.bkp"'

-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Boot/bootx64.efi.bkp
-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi.bkp

USER@MACHINE:~$ sudo parted /dev/sda print

Model: ATA ST31000524AS (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  316MB   315MB   ntfs            Basic data partition          hidden, diag
 2      316MB   420MB   105MB   fat32           EFI system partition          boot
 3      420MB   555MB   134MB                   Microsoft reserved partition  msftres
 4      555MB   751GB   750GB   ntfs            Basic data partition
 5      751GB   998GB   248GB   ext4
 6      998GB   1000GB  2000MB  linux-swap(v1)
    
por yxd 09.12.2012 / 23:00

4 respostas

5

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:

  1. 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.
  2. 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.
  3. Inicialize um disco de emergência do Linux no modo EFI. (O disco de instalação do Ubuntu deve funcionar bem para isso.)
  4. Instale o utilitário efibootmgr , se necessário. No live CD do Ubuntu, você faria isso digitando sudo apt-get install efibootmgr .
  5. 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á substituir grubx64.efi por shimx64.efi neste comando, mas dado que shimx64.efi está presente no seu sistema, a minha suspeita é que você está usando o Secure Boot.
  6. 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!

    
por Rod Smith 10.12.2012 / 01:18
0

Em vez do Reparo recomendado, tente isto:

  1. execute o Reparo de inicialização - & gt; Opções avançadas - & gt; Desmarque Backup and rename EFI files - & gt; marque Restore EFI backups - & gt; Aplicar.
  2. Reinicie o PC
  3. Se inicializar diretamente no Windows, configure seu firmware UEFI (~ BIOS) para inicializar a entrada Ubuntu e, em seguida, reinicialize.
por LovinBuntu 10.12.2012 / 22:12
0

A Microsoft é uma droga, como sempre, eles não querem outro SO, então eles sobrescrevem o gerenciador de inicialização. Procure bcdedit no Windows 8. Ainda não descobri como alterá-lo.

Impeça que o Windows 8 sobrescreva o bootmgr padrão

    
por Kouros 04.01.2013 / 06:37
0

O Windows 8 com a ativação do recurso de reinicialização rápida "recuperará" alguns dados, incluindo Carregadores de inicialização EFI ao desligar. Portanto, depois de concluir a inicialização dupla ambiente e inicialização do Windows 8 uma vez, você perderá suas configurações de inicialização dupla pela próxima inicialização. É por isso que você precisa desativar o recurso de reinicialização rápida.

Inicie cmd.exe como administrador e digite:

powercfg /h off

Verifique as configurações:

powercfg /a

    
por alfioalex 28.04.2014 / 15:53