grub não pode iniciar o Windows 10 após a instalação do Ubuntu 14.04 LTS

1

Eu olhei para alguns dos outros tópicos com problemas semelhantes, mas nenhum estava tendo o problema exato que eu tenho e, além disso, não encontrei nenhum com uma resposta satisfatória. Então eu pensei em postar meu próprio nome.

Eu recentemente adquiri um novo laptop, um ASUS Zenbook ux303LB, e instalei imediatamente o Windows 10 (usando a atualização gratuita que acompanha o computador; o Windows 8 estava pré-instalado) e o Ubuntu 14.04 LTS usando o Unetbootin e um USB (sem drive ótico).

Foi um pouco complicado trabalhar com o BIOS para inicializar a partir do USB, mas finalmente conseguimos fazê-lo. No entanto, assim que terminei de instalar o Ubuntu e reiniciei, o grub começou a me dar problemas. Primeiro, ele registra a partição do Windows 10 como "Windows Vista", o que é estranho, mas não é realmente um problema, tanto quanto eu posso dizer (também fiz isso enquanto particionava minha unidade, com a opção padrão "Instalar ao lado do Windows") registrando como Windows Vista também).

A lista completa de opções que o grub apresenta ao inicializar é a seguinte:

Ubuntu
Advanced options for Ubuntu
Memory test
Windows Vista (loader)
Windows Recovery Environment (loader)

Pressionar 'e' para editar o comando "Windows Vista" me dá isto:

setparams 'Windows Vista (loader) (on /dev/sda3)'

insmod part_gpt
insmod ntfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  944CC9654CC9432A
else
  search --no-floppy --fs-uuid --set=root  944CC9654CC9432A
fi
chainloader +1

A tentativa de iniciar o Windows USING disse que o comando "Windows Vista" me dá uma mensagem de erro muito vaga (e francamente completamente inútil) que simplesmente diz An error has occurred. Press ctrl+alt+delete to restart.

Esta é a saída que recebo de sudo parted -l .

Observe que a partição "named" Basic data partition com o sinalizador msftdata é a partição do Windows 10.

Felizmente, ainda posso inicializar no Windows se modificar a ordem de inicialização no BIOS para colocar o Gerenciador de Inicialização do Windows à frente da própria unidade. No entanto, seria bom poder usar o grub para inicializar o Windows OU o Ubuntu e não ter que modificar o BIOS toda vez que eu quiser mudar.

Idéias? Qualquer ajuda seria muito apreciada! Se alguém quiser alguma informação extra, me avise.

EDIT: Eu também esqueci de mencionar, eu tentei executar o reparo de inicialização. Infelizmente, ele me diz que a sessão está no modo herdado e o reparo de inicialização não pode ser executado. Eu acredito que isso é porque eu tive que habilitar a opção Launch CSM no meu BIOS. Desabilitar esta opção me impede de inicializar o grub / Ubuntu completamente, então parece que o reparo da inicialização está fora de questão? Parece estranho que esse seja o caso, mas quando desativo o Launch CSM , a única opção de inicialização que vejo é o Windows Boot Manager.

    
por VerumCH 14.08.2015 / 23:50

2 respostas

1

Você vê apenas o bootloader do Windows no modo UEFI bacause, que é o único gerenciador de inicialização instalado para o modo UEFI, o grub instalado no MBR é totalmente ignorado. Como os carregadores de inicialização do UEFI são apenas arquivos, você pode copiá-los para onde eles são necessários. Inicie o Ubuntu (no modo CSM, já que isso é tudo que você pode fazer) e instale os pacotes:

apt-get install shim-signed grub-efi-amd64-signed

Isso deve pelo menos colocar cópias dos gerenciadores de inicialização nos seguintes locais:

/usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed
/usr/lib/shim/shim.efi.signed

(Você pode ignorar o shim.efi já que está sendo executado com inicialização segura, mas eu o configurei para que ele seja executado de qualquer maneira) Você pode tentar executar o grub-install, mas provavelmente não é a versão comum do grub2 do UEFI, então faça o seguinte: Faça um ponto de montagem para a partição EFI em / boot / efi (supondo que não esteja lá), e coloque isso em seu fstab (use seu UUID, não o abaixo, ou apenas use / dev / sda1).

sudo mkdir /boot/efi
UUID=7A11-7B8B                            /boot/efi      vfat    defaults        0       1

Monte a partição aqui:

sudo mount -tvfat /dev/sda1 /boot/efi

Copie os gerenciadores de boot no padrão do disco rígido, preservando o existente (que é o Windows ')

sudo mv /boot/efi/EFI/Boot/bootx64.efi /boot/efi/EFI/Boot/bkpbootx64.efi
sudo cp /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed /boot/efi/EFI/Boot/grubx64.efi
sudo cp /usr/lib/shim/shim.efi.signed /boot/efi/EFI/bootx64.efi

Coloque um arquivo stub do grub.cfg em /boot/efi/EFI/ubuntu/grub.cfg. Este arquivo traz apenas o grub.cfg mantido do local / boot / grub. Um exemplo abaixo (mude o UUID e a partição do disco)

 search.fs_uuid 4e9797fa-2b51-4c8f-9a5c-37ee2cbf88ad root hd0,gpt4 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Isso pode ser suficiente para inicializar (está em uma mídia removível como um USB). Tente inicializar no modo UEFI escolhendo a entrada do disco rígido.

A instalação normal colocará os bootloaders em / boot / efi / EFI / ubuntu e configure uma entrada nvram para executá-los. Copie as versões assinadas do grub e shim para / efi / EFI / ubuntu, removendo o arquivo ".signed" e o arquivo grub.cfg como acima. Use efibootmgr para configurar a entrada. Em algum momento, você pode querer limpar o antigo grub-pc e instalar o pacote grub-efi-amd64, mas o acima deve ser suficiente para você rodar.

    
por ubfan1 15.08.2015 / 02:37
1

Como observado no meu comentário acima:

  

Ok, descobri. As etapas que você listou me ajudaram a adicionar o grub como   opção de inicialização reconhecida EFI, e de lá eu era capaz de executar boot   reparar ... o que me disse que eu não estava executando um compatível com UEFI   versão do Linux e instalar uma versão de 64 bits - embora   Eu selecionei explicitamente a versão x64 do Ubuntu no Unetbootin,   conseguiu instalar um 32 bits em vez disso. Reinstalando o Ubuntu como x64 fixo   todos os meus problemas.

     

Oh, bem, lição aprendida, eu acho - solucionar problemas a partir do zero.

Uma solução tão fácil que eu nunca considerei, simplesmente porque assumi que a Unetbootin fazia tudo certo (e eu a usava corretamente).

Sugerimos verificar a mesma coisa - que você não instalou um sistema operacional de 32 bits - para qualquer outra pessoa que tenha problemas com o Windows e Linux de inicialização dupla do UEFI ... As distribuições Linux de 32 bits não instalarão versões compatíveis com UEFI grub, uma vez que as arquiteturas de 32 bits não suportam EFI (evidentemente).

    
por VerumCH 15.08.2015 / 04:56