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

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?

Quando você instala o Windows, O Windows assume que é o único sistema operacional (so) na máquina, ou pelo menos não leva em conta o Linux. Portanto, ele substitui o GRUB por seu próprio carregador de inicialização. O que você precisa fazer é substituir o carregador de inicialização do Windows pelo GRUB. Eu vi várias instruções para substituir o GRUB por mucking com comandos GRUB ou algo assim, mas para mim a maneira mais fácil é simplesmente chroot em sua instalação e execução update-grub. chroot é ótimo porque permite que você trabalhe em sua instalação real, em vez de tentar redirecionar as coisas aqui e ali. É 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 o GParted (que já deve estar instalado, por padrão, na sessão ao vivo) pode te ajudar aqui. 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 será localizado em /dev/mapper/, provavelmente, /dev/mapper/{volume}--{os}-root onde {volume} é o nome do volume LVM e {os} é o sistema operacional. Executar 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 um /boot, /var ou /usr particao, 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/bootsudo mount /dev/sdXY /mnt/varsudo mount /dev/sdXZ /mnt/usr

    substituicao sdXW, sdXY, e sdXZ com os respectivos números de partição.

  4. Bind montar 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), usar 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 com o número real da partição do seu sistema:

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

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

    update-grub

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

  8. Dependendo da sua situação, talvez seja necessário reinstalar o grub:

    grub-install /dev/sdaupdate-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 isso:

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

    Se a partição EFI atual UUID (de blkid) difere daquele em /etc/fstab, actualizacao /etc/fstab com uuid atual.

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

    exitsudo reboot
  11. Neste ponto, você deve ser capaz de inicializar normalmente.

Se você não conseguir inicializar normalmente e não executou a Etapa 8 porque não havia mensagens de erro, tente novamente com a Etapa 8.

  • Às vezes, dando ao GRUB2 o correto configuracao para suas partições não é suficiente, e você deve realmente instalá-lo (ou reinstalá-lo) para o registro mestre de inicialização, o 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 é mostrada.

O Windows installer não se preocupa com outro sistema operacional no sistema. Por isso, ele escreve o próprio código sobre o registro mestre de inicialização. Felizmente, a solução também é fácil.

Você precisa reparar o MBR. Proceder

Inicialize usando um live usb / cd do ubuntu. Usar 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 updatesudo apt-get install -y boot-repair && boot-repair

Usar Recomended Repair.

enter image description here

Mais informações - https://help.ubuntu.com/community/Boot-Repair

Inicialize a partir de um pendrive ou CDand do Ubuntu ao vivo
Instale o Boot-Repair no ubuntu seguindo as etapas

Abra o terminal e execute os seguintes comandos

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

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

Método 1

  • Clique nas opções avançadas

Initial screen

  • Marque as opções mostradas abaixo

advanced option

  • Altere a guia para a guia local do Grub e marque as opções mostradas na figura

enter image description here

Pressione Aplicar e reinicie o sistema

Método 2

  • Selecione as opções de reparo de inicialização recomendadas, conforme mostrado na primeira captura de tela

Documentacao :

Instalar easyBCD no Windows 7 e fazer

>>>Adicionar nova entrada Linux / BSD (select ) Grub2 (push) Adicionar Entrada

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

Em sistemas baseados em EFI (como a maioria dos sistemas fornecidos com o Windows 8 ou posterior), O Windows às vezes atualiza seu carregador de inicialização ou o redefine para ser o carregador de inicialização padrão. Isso é particularmente comum ao reinstalar o sistema operacional ou executar uma grande atualização do sistema (atualizando para a versão mais recente do Windows, por exemplo). Observe que é improvável que o Windows apague qualquer arquivo GRUB em um computador baseado em EFI. Tudo o que é necessário para inicializar o Ubuntu ainda está no lugar; ele está apenas sendo ignorado. Nesses casos, uma reinstalação completa do GRUB é um exagero e, na verdade, isso acarreta uma (pequena) chance de criar novos problemas.

Assim, em vez de reinstalar o GRUB nesses casos, recomendo redefinir o GRUB (ou qualquer gerenciador de inicialização ou gerenciador de inicialização que você preferir) 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 para o Windows, é usar EasyUEFI, que é uma ferramenta GUI de terceiros gratuita (para a versão básica) para gerenciar a ordem de inicialização EFI. É bastante autoexplicativo-localize o ubuntu entrada na lista de opções de inicialização e movê-lo 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 -- janela bcdedit a ferramenta pode ser usada para definir o GRUB para a ordem de inicialização padrão. Comando bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi, digitado em um Administrador Janela do Prompt de comando, fará isso; no entanto, se o seu computador inicializar com Inicialização Segura ativa, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi será necessário em vez disso. Na verdade, o último comando irá geralmente trabalhe mesmo se a inicialização segura 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 que apresentei, mas não me lembro dos detalhes.
  • Inicialização única para o Ubuntu -- A maioria dos EFIs fornece um gerenciador de inicialização integrado, acessado pressionando uma tecla de função, Esc ou Enter no início do processo de inicialização do sistema. As Chances são as ubuntu a entrada para inicializar o Ubuntu aparecerá neste menu do Gerenciador de inicialização, permitindo que você inicialize no Ubuntu. Como alternativa, você pode inicializar em um meio 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. Tipo sudo efibootmgr para ver as entradas de inicialização.
    2. Observe a corrente BootOrder linha.
    3. Localize a entrada para ubuntu e observe sua Boot#### numero.
    4. Tipo sudo efibootmgr -o xxxx[,yyyy,zzzz,....] para alterar a ordem de inicialização, fazendo xxxx o número do Ubuntu. O que vem depois disso provavelmente não é muito importante, embora eu tenha notado que o Windows parece ser provável que se Adicione de volta 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 o ubuntu entrada movida para o topo da lista.
  • Utilitário de configuração do Firmware -- Alguns utilitários de configuração do 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 essa opção em seu utilitário de configuração.

Existem outras variantes nesses procedimentos, como o uso bcfg em um shell EFI, usando bless no macOS, usando meu rEFInd para fazer uma inicialização única, etc. Eu começaria com EasyUEFI, no entanto; é 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 de lidar 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 da maneira EFI em vez de reinstalar cegamente o GRUB.

Agora existe uma solução mais simples:

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

Isso foi testado em um laptop Samsung Series 7 Chronos com inicialização dupla Windows 8 e Ubuntu 13.10, inicialização segura desativada, UEFI e Inicialização legada habilitada.

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

Todas as opções de reparo disponíveis são descritas no 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 Ubuntu live existente) e como usá-lo.

Basta inicializar um Ubuntu live CD, instalar o Boot-Repair e executá-lo.

Quando o GRUB está 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 impedindo a instalação correta do GRUB, bug do instalador, alteração de hardware...Atualizar o GRUB como 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 exigem outros ajustes (adicionar opções ao kernel, exibir o menu GRUB, alterar as opções do GRUB, escolher a arquitetura de host correta...).Outras dificuldades para reparar o GRUB são o uso do chroot e a escolha das partições /discos corretos.

Tudo isso foi facilitado em uma pequena ferramenta gráfica: Boot-Repair. Itshall ser integrado no Ubuntu 12.04 CD para facilitar o uso, mas para as pessoas que precisam dele agora, já existem algumas distros integrá-lo: Ubuntu-Secured-Remix (Ubuntu CD integrando Boot-Repair), Boot-Repair-Disk (CD executando Boot-Repair na inicialização),...

Espero que isso ajude.

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 em que o grub não consegue encontrar efi Directorio.
O que resolveu meu problema mais de 10 vezes é limpar manualmente as instalações antigas do grub e instalar uma nova.

Então, primeiro execute os primeiros 6 passos de Scott resposta onde você pode pular a Etapa 5 Se der um erro:

  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 o GParted (que já deve estar instalado, por padrão, na sessão ao vivo) pode te ajudar aqui. 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 será localizado em /dev/mapper/, provavelmente, /dev/mapper/{volume}--{os}-root onde {volume} é o nome do volume LVM e {os} é o sistema operacional. Executar 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 um /boot, /var ou /usr particao, 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/bootsudo mount /dev/sdXY /mnt/varsudo mount /dev/sdXZ /mnt/usr

    substituicao sdXW, sdXY, e sdXZ com os respectivos números de partição.

  4. Bind montar 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 você não tiver certeza] [efi]), 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 com o número real da partição do seu sistema:

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

    sudo chroot /mnt

Em seguida, execute estas etapas:

  1. Configure todos os pacotes pendentes.
    sudo dpkg --configure -a
  2. Corrija os pacotes quebrados.
    sudo apt install -fy
  3. Remova 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á bootloader e pode não conseguir inicializar na próxima vez. Vá em frente e aceite.
  4. sudo apt install -y grub-pc
    Depois de executar este comando, ele pedirá que você aponte a corrente sdXY para instalar o bootloader. Encontre onde seu sistema operacional atual está instalado usando sudo fdisk -l comando. Será rotulado como Linux. Navegue nessa janela usando Tab chave e selecione uma opção usando Space chave.
  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 Wiki do Arch para realmente entender sobre grub para resolver muitas outras variedades de problemas. (Sim, também ajuda para o Ubuntu!).

A resposta de Scott Severance é válida e detalhada, mas há uma resolução que exige nenhum dispositivo de inicialização externo e, portanto, não há necessidade de identificar e montar manualmente todas as suas partições do Ubuntu que levam ao chroot.

No Windows 10, você pode usar Advanced Recovery para selecionar um dispositivo (partição?) para inicializar.

Ir Settings e escolha Update & Security:

enter image description here

Ir Recovery:

enter image description here

De Advanced Startup escolher Restart Now

enter image description here

Escolher Use a Device e todas as opções de inicialização devem ser apresentadas a você. Escolha a partição 'ubuntu' e seu PC deve inicializar a partir dessa partição.

Uma vez inicializado no meu ambiente Ubuntu usual, tentei apenas executar grub-update mas isso não fez nenhuma mudança.

Eu então encontrei meu /boot/efi partição que foi /dev/nvme0n1p1 e correu sudo grub-install /dev/nvme0n1p1 e então sudo update-grub.

Isso restaurou meu registro mestre de inicialização várias vezes Agora, pois parece haver uma nova política do Windows 10 de substituindo informações de inicialização em pequenas atualizações.

Relacionado (quando o GRUB foi instalado no * MBR da unidade errada*): [problema de resgate do Grub após a instalação do ubuntu] (boot - Grub rescue after installing Ubuntu on a external HDD from USB - Ask Ubuntu)

Nota: a resposta Aceita é uma instrução geral sobre como reparar o grub. Também é aplicável à grande variedade de circunstâncias em que o GRUB é escrito incorretamente pelo instalador (ubiquity).

Eu sei que este é um thread antigo, mas resolvi o problema alterando o modo de inicialização no bios de UEFI para Legacy.

Eu acho que é uma tarefa comum, eu também tenho dois HDDs, e Ubuntu + Windows. Espero que você possa repará-lo da maneira certa. Tente seguir [isto] (RecoveringUbuntuAfterInstallingWindows - Community Help Wiki) tutorial. Qualquer dúvida, pergunte-me!

Sim, você pode, você só teria que fazer uma inicialização normal e instalar com o windows e, em seguida, ele deve aparecer no menu de inicialização do Grub na inicialização do computador.