Como posso reparar o grub? (Como obter o Ubuntu de volta depois de instalar o Windows?)

314

Eu instalei o Windows 7, que comeu o arquivo de inicialização do Ubuntu. Ao iniciar o computador, ele agora vai direto para o Windows, sem me dar a opção de inicializar o Ubuntu.

Como posso recuperar o Ubuntu?

    
por Salahuddin 17.12.2011 / 08:02
fonte

12 respostas

322

Quando você instala o Windows, o Windows assume que é o único sistema operacional (SO) da máquina ou, pelo menos, não conta para o Linux. Por isso, substitui o GRUB por seu próprio gerenciador de inicialização. O que você precisa fazer é substituir o carregador de inicialização do Windows pelo GRUB. Já vi várias instruções para substituir o GRUB por meio de comandos do GRUB ou algo assim, mas para mim a maneira mais fácil é simplesmente chroot em sua instalação e executar update-grub . chroot é ótimo porque permite que você trabalhe em sua instalação real, em vez de tentar redirecionar as coisas aqui e ali. Está realmente limpo.

Veja como:

  1. Inicialize a partir do live CD ou live USB, no modo "Try Ubuntu".
  2. Determine o número da partição da sua partição principal. sudo fdisk -l , sudo blkid ou GParted (que já deve estar instalado, por padrão, na sessão ao vivo) podem ajudá-lo aqui. Eu vou assumir nesta resposta que é /dev/sda2 , mas certifique-se de usar o número de partição correto para o seu sistema!

    Se sua partição principal estiver em um LVM , o dispositivo estará localizado em /dev/mapper/ , provavelmente, /dev/mapper/{volume}--{os}-root em que {volume} é o nome do volume LVM e {os} é o sistema operacional. Execute ls /dev/mapper para o nome exato.

  3. Monte sua partição:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    Se você tiver uma /boot , /var ou /usr partitions separada, repita as etapas 2 e 3 para montar essas partições para /mnt/boot , /mnt/var e /mnt/usr respectivamente . Por exemplo,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr
    

    substituindo sdXW , sdXY e sdXZ pelos respectivos números de partição.

  4. Ligue algumas outras coisas necessárias:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    
  5. Se o Ubuntu estiver instalado no modo EFI ( veja esta resposta se não tiver certeza ), use sudo fdisk -l | grep -i efi ou GParted para encontrar sua partição EFI. Ele terá um rótulo de EFI . Monte esta partição, substituindo sdXY pelo número de partição real do seu sistema:

    sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot na sua instalação do Ubuntu:

    sudo chroot /mnt
    
  7. Neste ponto, você está na sua instalação, não na sessão ao vivo e sendo executado como root. Atualizar o grub:

    update-grub
    

    Se você receber erros ou se a etapa 7 não resolver o problema, vá para a etapa 8. (Caso contrário, é opcional).

  8. Dependendo da sua situação, você pode ter que reinstalar o grub:

    grub-install /dev/sda
    update-grub # In order to find and add windows to grub menu.
    
  9. Se o Ubuntu estiver instalado no modo EFI e o UUID da partição EFI tiver sido alterado, talvez seja necessário atualizá-lo em /etc/fstab . Compare-o:

    blkid | grep -i efi
    grep -i efi /etc/fstab
    

    Se o UUID da partição EFI atual (de blkid ) diferir do UO em /etc/fstab , atualize /etc/fstab com o UUID atual.

  10. Se tudo funcionou sem erros, então está tudo pronto:

    exit
    sudo reboot
    
  11. Neste ponto, você poderá inicializar normalmente.

Se você não conseguir inicializar normalmente e não executar a etapa 8 porque não houve mensagens de erro, tente novamente na etapa 8.

  • Às vezes, dar ao GRUB2 a configuração correta para suas partições não é suficiente, e você deve realmente instalá-lo (ou reinstalá-lo) no Master Boot Record, que a etapa 8 faz. A experiência de ajudar os usuários no bate-papo mostrou que a etapa 8 às vezes é necessária mesmo quando nenhuma mensagem de erro é exibida.
por Scott Severance 17.12.2011 / 13:23
fonte
95

O instalador do Windows não se importa com outros sistemas operacionais no sistema. Por isso, escreve código próprio sobre o registro mestre de inicialização. Felizmente a solução é fácil também.

Você precisa reparar o MBR. Faça o seguinte

Inicialize usando um live usb / cd do Ubuntu. Use boot-repair para corrigir o problema.

Após inicializar com live usb / cd, execute o seguinte comando no terminal:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Use Recomended Repair .

Maisinformações- link

    
por Web-E 01.09.2012 / 08:59
fonte
35

Nunca tive problemas ao usar estas instruções: link

Primeiro de tudo, você deve iniciar seu sistema a partir de um live cd. Então

% bl0ck_qu0te%     
por desgua 27.04.2012 / 04:15
fonte
19

Inicialize a partir de um pendrive ou CD USB ao vivo do Ubuntu e
Instalar o Boot-Repair no Ubuntu, seguindo os passos

Abra o terminal e execute os seguintes comandos

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair

Depois de concluir a instalação, você poderá iniciá-lo no menu System- > Administration- > Boot-Repair se usar o Gnome ou pesquisar "boot-repair" no painel se usar o Unity. Em seguida, siga as seguintes capturas de tela:

Método 1

  • Clique nas opções avançadas

  • Marqueasopçõesmostradasabaixo

  • Altere a guia para a guia Localização do Grub e marque as opções Mostradas na figura

PrimaAplicareReinicieosistema

Método2

  • Selecioneasopçõesdereparodeinicializaçãorecomendadas,conformemostradonaprimeiracapturadetela

Documentação:

    
por Stormvirux 30.07.2013 / 21:25
fonte
11

Basta instalar easyBCD no Windows 7 e fazer

Adicionar nova entrada > Linux / BSD > (selecione) Grub2 > (push) Adicionar entrada

Então você pode escolher o Ubuntu no bootloader do Windows 7 para ir para o Grub2 (gerenciador de inicialização anterior).

    
por hamed 11.03.2012 / 23:09
fonte
5

Existe agora uma solução mais simples:

  1. Reinicialize e digite as opções de BIOS do seu computador (F2 ou às vezes F11).
  2. Vá para o menu Boot e selecione Prioridade de dispositivo de inicialização
  3. Verifique se o Gerenciador de Inicialização do Windows está acima da unidade de inicialização principal (normalmente SATA HDD… ou IDE HDD… ). Se estiver, mova a prioridade do disco de inicialização acima do Windows Boot Manager.
  4. Salve suas opções de BIOS e saia (geralmente F10).

Isso foi testado em um notebook Samsung Série 7 Chronos com inicialização dupla Windows 8 e Ubuntu 13.10, inicialização segura desativada, UEFI e inicialização legada ativada.

    
por scruss 15.12.2013 / 14:04
fonte
3

Em sistemas baseados em EFI (como a maioria dos sistemas fornecidos com o Windows 8 ou posterior), o Windows algumas vezes atualiza seu carregador de inicialização ou o redefine para ser o carregador de inicialização padrão. Isso é particularmente comum quando você reinstala o sistema operacional ou executa uma atualização de sistema principal (atualizando para a versão mais recente do Windows, por exemplo). Observe que é improvável que o Windows realmente apague arquivos GRUB em um computador baseado em EFI. Tudo necessário para inicializar o Ubuntu ainda está em vigor; está apenas sendo ignorado. Nesses casos, uma reinstalação completa do GRUB é um exagero e, na verdade, carrega uma (pequena) chance de criar novos problemas.

Assim, em vez de reinstalar o GRUB nesses casos, recomendo que você redefina o GRUB (ou qualquer outro gerenciador de inicialização ou gerenciador de inicialização de sua preferência) para ser o padrão. Existem várias maneiras de fazer isso, incluindo:

  • EasyUEFI - A maneira mais fácil de ajustar a ordem de inicialização, se o sistema estiver inicializando diretamente no Windows, é usar EasyUEFI, que é uma ferramenta gráfica livre de terceiros (para a versão básica) para gerenciar a ordem de inicialização EFI. É bastante autoexplicativo - localize a entrada ubuntu na lista de opções de inicialização e mova-a para o topo da lista. Na próxima vez que você reiniciar, o GRUB deve aparecer. (Se você usar algo diferente do GRUB, precisará localizar sua entrada.)
  • bcdedit - A ferramenta bcdedit do Windows pode ser usada para definir o GRUB como a ordem de inicialização padrão. O comando bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi , digitado em uma janela do Administrador Prompt de Comando, fará isso; no entanto, se o computador inicializar com inicialização segura ativa, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi será necessário. Na verdade, o último comando irá geralmente funcionar mesmo se o Secure Boot não estiver em uso, então eu usaria esse comando primeiro. Observe que há uma ferramenta de shell do Windows mais avançada que requer uma sintaxe ligeiramente diferente da apresentada, mas não me lembro dos detalhes.
  • Inicialização única para o Ubuntu - A maioria das EFIs fornece um gerenciador de inicialização integrado, acessado pressionando uma tecla de função, Esc ou Enter no início do processo de início do sistema. É provável que a entrada ubuntu para inicializar o Ubuntu apareça neste menu do gerenciador de inicialização, permitindo que você inicialize no Ubuntu. Como alternativa, você pode inicializar em uma mídia de emergência do Ubuntu, como o instalador inicializado no modo "tentar antes de instalar". De qualquer forma, você pode usar efibootmgr para ajustar a ordem de inicialização:
    1. Digite sudo efibootmgr para ver as entradas de inicialização.
    2. Observe a linha atual BootOrder .
    3. Localize a entrada para ubuntu e anote seu Boot#### number.
    4. Digite sudo efibootmgr -o xxxx[,yyyy,zzzz,....] para alterar a ordem de inicialização, tornando xxxx o número do Ubuntu. O que vem depois disso provavelmente não é muito importante, embora eu tenha notado que o Windows parece estar voltando ao início da ordem de inicialização se não estiver na lista. Assim, você provavelmente deve garantir que o Windows esteja na lista, e pode ser mais seguro reordenar a lista para que todas as entradas originais estejam lá, apenas com a entrada ubuntu movida para o topo da lista.
  • Utilitário de configuração de firmware - Os utilitários de configuração de alguns EFIs permitem ajustar a ordem de inicialização. Os detalhes variam muito de um EFI para outro, então não vou entrar em detalhes, mas você pode procurar por essa opção no seu utilitário de configuração.

Existem outras variantes nesses procedimentos, como usar bcfg em um shell EFI, usando bless no macOS, usando meu rEFInd para fazer uma inicialização única, etc. Eu começaria com o EasyUEFI; É provável que seja a solução mais simples. Às vezes, o Windows insiste em se tornar o padrão toda vez que é iniciado, e os relatórios indicam que bcdedit pode fazer um trabalho melhor com esse problema.

Observe que nenhum dos itens anteriores se aplica a instalações no modo BIOS; no entanto, como a maioria dos computadores fornecidos com o Windows 8 ou posterior inicializa no modo EFI, as instalações no modo BIOS estão se tornando cada vez mais raras, portanto, em muitos casos, é melhor lidar com o problema do modo EFI do que reinstalar o GRUB cegamente.

    
por Rod Smith 13.07.2017 / 17:03
fonte
2

Boot-Repair funcionou para mim. É muito fácil usar o aplicativo gráfico, você não precisa usar a linha de comando, você só precisa clicar em um botão:)

Todas as opções de reparo disponíveis estão descritas na documentação do Ubuntu e há um página separada explicando como iniciar o Reparo de Inicialização (criando um disco inicializável ou instalando-o em um disco live Ubuntu existente) e como usá-lo. / p>

Basta inicializar um CD live do Ubuntu, instalar o Reparo de inicialização e executá-lo.

    
por lorenzo-s 18.12.2011 / 02:41
fonte
1

Quando o GRUB é quebrado, o usuário geralmente não tem acesso aos sistemas, portanto, o reparo deve ser realizado a partir de uma sessão ao vivo (live-CD ou live-USB).

Existem muitas causas possíveis para uma quebra do GRUB: gravação do Windows no MBR, DRM que impede a instalação correta do GRUB, bug do instalador, alteração de hardware ... Atualizar o GRUB proposto inicialmente por Scott geralmente não é suficiente, reinstalar o GRUB como proposto por Marco é mais eficiente, mas ainda existem várias situações que requerem outros ajustes (adicionar opções ao kernel, mostrar o menu GRUB, alterar as opções do GRUB, escolher a arquitetura correta do host ...) Outras dificuldades para reparar o GRUB são o uso de chroot e a escolha das partições / discos corretos.

Tudo isso foi facilitado em uma pequena ferramenta gráfica: Boot-Repair . isto será integrado no Ubuntu 12.04 CD para facilitar o uso, mas para as pessoas que precisam agora, já existem algumas distribuições integrando-o: Ubuntu-Secured-Remix (CD que integra o Boot-Repair), Boot-Repair-Disk (CD rodando Boot-Repair) Repare no arranque), ...

Espero que isso ajude.

    
por LovinBuntu 20.12.2011 / 09:58
fonte
0

O Windows não vê partições formatadas em Linux. Você precisa usar o gparted de um liveCD e criar uma partição primária formatada como NTFS com o sinalizador de inicialização.

Alguns tiveram problemas se a nova partição primária estiver após a partição estendida, pois o Windows nem sempre redefine a tabela de partição corretamente. É melhor ter bons backups e um backup separado da tabela de partições.

Backup da tabela de partições para o arquivo de texto & amp; salvar no dispositivo externo.

sudo sfdisk -d /dev/sda > PTsda.txt

Isso é somente para sistemas MBR (msdos). Se a sua instalação do Ubuntu estiver na unidade de partição GPT, você só poderá instalar o Windows no modo UEFI ou converter a unidade de volta em MBR (msdos).

    
por oldfred 30.07.2013 / 22:01
fonte
0

Somente o comando fsck corrigiu a tela grub-rescue para mim.

Use Boot-Repair para inicializar a partir do Live-CD e abra o Terminal

Obtenha o dispositivo correto:

sudo fdisk -l

Precisa encontrar o dispositivo de inicialização, o dispositivo de inicialização tem * na categoria de inicialização, como aqui:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048   2000895   1998848  976M 82 Linux swap / Solaris
/dev/sda2  *    2000896 943716351 941715456  449G 83 Linux

Agora, corrija o disco usando:

sudo fsck /dev/sda2

Nota: / dev / sda2 é o dispositivo de inicialização neste exemplo.

Digite Y para corrigir os problemas

Depois de digitar Y cerca de 2 vezes, você pode parar o processo fsck digitando CTRL + C , porque a parte crítica já feito.

Reinicie. Feito.

    
por Benny 25.07.2018 / 09:51
fonte
0

As respostas dadas por Scott e Web-E são boas o suficiente e ajudaram muito muitas vezes. Mas muitas vezes, a ferramenta de reparo de inicialização não é capaz de reparar o grub devido a problemas relacionados à plataforma i386 e amd64 ou a um onde o grub não consegue encontrar o diretório efi .
O que resolveu meu problema mais de 10 vezes é limpar manualmente as instalações antigas do grub e instalar uma nova.

Então, primeiro faça os primeiros 6 passos da resposta de Scott, onde você pode pular o 5º passo se der um erro:

% bl0ck_qu0te%

Em seguida, siga estas etapas:

  1. Configure todos os pacotes pendentes.
    sudo dpkg --configure -a
  2. Corrigir os pacotes quebrados.
    sudo apt install -fy
  3. Remove o grub atual.
    sudo apt purge -y grub*-common grub-common:i386 shim-signed
    Isso pode lhe dar um aviso de que seu dispositivo não terá nenhum bootloader e pode ser incapaz de arrancar na próxima vez. Vá em frente e aceite.
  4. sudo apt install -y grub-pc
     Depois de executar este comando, ele solicitará que você aponte o atual sdXY para instalar o carregador de inicialização. Encontre onde seu sistema operacional atual está instalado usando o comando sudo fdisk -l . Será rotulado como Linux . Navegue por essa janela usando a tecla Tab e selecione uma opção usando a tecla Espaço .
  5. Se tudo der certo, o grub será instalado corretamente. Você também pode fazer sudo grub-update para uma verificação dupla.

Se o problema persistir, você pode ler o Wiki do Arch para realmente entender sobre o grub para lidar com muitas outras variedades de problemas. (Sim, também ajuda no Ubuntu!).

    
por subtleseeker 06.09.2018 / 16:28
fonte