UEFI instalado e atualizado do Windows 8 após o Ubuntu - Restaurar GRUB

3

Então, eu tinha um laptop com a cópia OEM do Windows 8, obviamente instalado na configuração do UEFI com o particionamento GPT. Há pouco tempo instalei o Ubuntu 13.xx (o mais recente) junto com ele e o GRUB, felizmente, detectou o Windows e estava tudo bem até agora.

Então, ontem, atualizei para o Windows 8.1 e, aparentemente, reescrevi o carregador de boot e, naturalmente, não consigo inicializar no Ubuntu. Isso me leva direto ao Windows.

Como faço para reparar o GRUB? A maioria das páginas de ajuda / artigos fala sobre o particionamento MBR, que é um caso bem diferente do UEFI + GPT AFAIK. E os artigos que falam sobre UEFI são sobre como corrigir a instalação não inicializável do Windows após a instalação do linux, o que não é o meu caso.

Qualquer método experimentado e testado para obter o Ubuntu novamente?

PS: Antes de recomendá-lo, não; O EasyBCD ou ferramentas similares não podem adicionar o linux ao bootloader do Windows se o Windows for instalado com o UEFI.

    
por tumchaaditya 04.01.2014 / 06:36

2 respostas

9

Usar o Boot Repair, como o MariusMatutiae sugere, pode funcionar; No entanto, esse programa às vezes faz mais do que é sábio, então eu prefiro evitá-lo. Existem pelo menos três soluções menos radicais:

Solução 1: Use o Firmware

Muitas EFIs fornecem um gerenciador de inicialização integrado que permite ajustar a ordem de inicialização. Sua entrada Ubuntu / GRUB provavelmente ainda existe, então tudo que você precisa fazer é ajustar a ordem de inicialização usando o firmware. O problema com essa abordagem é que os utilitários de configuração EFI variam tanto que é impossível fornecer instruções universalmente aplicáveis sobre como fazer isso. Se o seu firmware suportar esse recurso, é provável que seja a maneira mais simples de fazê-lo - uma vez que você descubra como chegar à opção!

Solução 2: use bcdedit no Windows

A ferramenta bcdedit do Windows pode adicionar um carregador de inicialização não-Windows à lista de inicialização. O truque é descobrir o que é o arquivo. Você pode fazer assim:

  1. Inicialize no Windows
  2. Abra uma janela do prompt de comando Administrador . (Não use um shell de terceiros para isso. Eu vi relatórios que bcdedit não funcionam corretamente com alguns deles.)
  3. Digite mountvol S: /S para montar o ESP como S: . (Você pode alterar S: para outra coisa, se quiser.)
  4. Usando o Prompt de Comando, verifique S: para localizar o seu carregador de boot do Ubuntu. É provavelmente S:\EFI\ubuntu\grubx64.efi ou S:\ubuntu\shimx64.efi . Se você vir o último, deve ser seguro usá-lo, e pode ser necessário usá-lo - shim é como o Ubuntu lida com o Secure Boot (SB), mas em um computador que não seja SB, ele terá pouco efeito. Se a Inicialização Segura estiver inativa, os ajustes poderão ou não ser instalados, portanto, talvez você precise consultar grubx64.efi diretamente.
  5. Digite bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi , alterando shimx64.efi para grubx64.efi se shimx64.efi não estiver presente. Mude o caminho se for outra coisa, o que é improvável.
  6. Opcionalmente, digite bcdedit /set {bootmgr} description "Ubuntu" para definir o nome que aparece na própria lista de gerenciadores de inicialização da EFI. Altere Ubuntu para o que você quiser.

Se você já conhece o nome do arquivo do seu gerenciador de inicialização, pode pular as etapas 3 e 4. (O ESP não precisa ser montado para usar bcdedit dessa maneira.)

Esse método tem a vantagem de impedir que o Windows mexa na ordem de inicialização - às vezes o Windows tentará ajustar a ordem de inicialização sem ser solicitado. Não sei se isso impediria a repetição desse problema se / quando você atualizar para o que vier depois do Windows 8.1, no entanto.

Solução 3: inicialize no Linux e use efibootmgr

Provavelmente, você pode inicializar no Linux usando o gerenciador de boot do próprio firmware, que pode ser acessado na maioria dos computadores pressionando-se Esc ou uma tecla de função no momento da inicialização, embora a chave varie de um computador para outro. Como alternativa, você pode usar rEFInd em uma unidade flash USB ou CD-R como gerenciador de inicialização se o seu é inadequado. Você também pode inicializar usando um live CD ou disco de emergência do Linux, mas certifique-se de inicializar no modo EFI - uma inicialização no modo BIOS não será adequada. Quando estiver no Linux, você pode usar efibootmgr para ajustar a ordem de inicialização:

  1. Abra uma janela do Terminal.
  2. Digite sudo efibootmgr -v para obter uma lista de programas de inicialização. Um será para o Linux e iniciará o shim ou o GRUB. Observe a lista BootOrder . As chances são de que a entrada do Windows agora seja a primeira, e a entrada do Ubuntu venha depois na lista. Algumas entradas podem ser confusas. Apenas ignore-os; concentre-se em encontrar a entrada do Ubuntu e identificar seu número (na entrada Boot#### no início da linha).
  3. Digite sudo efibootmgr -o {list} , alterando {list} para uma lista separada por vírgula de números de inicialização, como em sudo efibootmgr -o 5,0 if Boot0005 é para o Ubuntu e Boot0000 é para o Windows. Você pode adicionar mais entradas se quiser, mas a primeira é a mais importante, pois é isso que será inicializado primeiro.

Se uma entrada do Ubuntu não não existir, você pode criar uma com efibootmgr , como em:

efibootmgr -c -d /dev/sda -p 1 -l '\EFI\ubuntu\shimx64.efi' -L "Ubuntu"

Altere -d /dev/sda para apontar para o seu dispositivo de disco inteiro e -c 1 para especificar o número da partição. (Na verdade, /dev/sda e 1 são os padrões, então você realmente precisa deles apenas se o seu ESP não for /dev/sda1 .)

    
por 04.01.2014 / 18:34
0

Existem muitas soluções diferentes para isso. Um conjunto de soluções certamente requer o uso de uma distribuição ao vivo do Linux, como por exemplo a do Ubuntu. Grave uma imagem do Ubuntu em um dispositivo USB, inicialize-a escolhendo Experimentar o Ubuntu sem instalar ... , abra um terminal e, em seguida, instale e use Reparo de inicialização , seguindo as instruções na página da Web que pertence à Documentação oficial do Ubuntu. Isso geralmente é suficiente para corrigir a maioria dos problemas de inicialização.

Como alternativa, em vez de baixar o Boot-Repair, você pode montar seu disco HDD a partir do terminal, por exemplo, emitindo

   sudo mount /dev/sdaX /mnt

em que X é o número da partição em que você colocou o /s do Ubuntu. Se você não tem certeza, antes do comando acima,

   sudo fdisk -l

dirá qual partição é qual. Em seguida, emita este comando:

   cd /mnt
   sudo chroot .
   sudo update-grub

e, quando isso é feito, Ctrl + D.

    
por 04.01.2014 / 17:04