Questão Como posso reparar o grub? (Como obter o Ubuntu de volta 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?


309
2017-12-17 07:02


origem


Eu acho que é uma tarefa comum, eu também tenho dois HDDs e Ubuntu + Windows. Espero que você consiga consertá-lo da maneira certa. Tente seguir esta tutorial. Qualquer dúvida, pergunte-me! - antivirtel
Relacionado (quando o GRUB foi instalado no MBR da unidade errada): Problema de resgate do Grub após a instalação do ubuntu - Eliah Kagan
Sim, você pode, você apenas 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. - Rampoo1208
Eu sei que este é um segmento antigo, mas eu corrigi o problema, alterando o modo de inicialização no BIOS da UEFI para Legacy.
NOTA: a resposta aceita é uma instrução geral sobre como consertar o grub. Também é aplicável à ampla variedade de circunstâncias em que o GRUB é gravado incorretamente pelo instalador (onipresença). - Danatela


Respostas:


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. Eu vi várias instruções para substituir o GRUB rodando com comandos do GRUB ou algo assim, mas para mim a maneira mais fácil é simplesmente chroot na 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. 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) pode 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 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ê tem um separado /boot, /var ou /usr partições, repita os passos 2 e 3 para montar estas 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, sdXYe sdXZ com os respectivos números de partição.

  4. Vincule 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 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 executando como root. Atualizar 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 for alterado, talvez seja necessário atualizá-lo /etc/fstab. Compare-o:

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

    Se o UUID da partição EFI atual (de blkid) difere daquela em /etc/fstabatualização /etc/fstab com o UUID atual.

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

    exit
    sudo reboot
    
  11. Neste ponto, você deve ser capaz de 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, dando GRUB2 o correto configuração para suas partições não é suficiente, e você deve realmente instalá-lo (ou reinstalá-lo) para o 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.

317
2017-12-17 12:23



Comentários não são para discussão extensa; esta conversa foi mudou-se para conversar. - Thomas Ward♦
Eu ainda quero que o Windows seja meu sistema operacional de inicialização principal. Esta ainda é a solução correta? Como faço para escolher qual sistema operacional inicializar? F11 - Jeff
@ScottSeverance Eu vi do seu perfil que você mora no DFW. Você já pensou em dar aulas ou tutoriais ao vivo para levar as pessoas para o Linux? - Mohammed Joraid
Esses problemas não envelhecem: D - Não que, ao lidar com EFI, você precise instalar grub-efi-amd64 e se você estiver usando boot seguro você gostaria de usar grub-install --uefi-secure-boot. Isto também é detalhado em superuser.com/a/376471/197980 - Raffael
Esta solução é aplicável também para o Windows 10 no computador com BIOS (ou seja, não com UEFI). A pergunta sobre qual você tem pode ser respondida com esta dica - thewindowsclub.com/check-if-uefi-or-bios. - okolnost


O instalador do Windows não se importa com outros sistemas operacionais no sistema. Por isso, escreve o próprio código 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. Usar boot-repair para consertar o problema.

Depois de 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

Usar Recomended Repair.

enter image description here

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


94
2017-09-01 06:59



você quer dizer que é intencional pelo pessoal da Microsoft? Além disso, a inicialização dupla funcionou com o Windows 7, portanto, não contradiz sua primeira linha que "O instalador do Windows não se importa com outros sistemas operacionais no sistema". - Shagun Sodhani
Windows quebra grub o tempo todo é um problema muito comum e um ive teve que lidar comigo mesmo. A resposta ainda é boa e deve resolver o problema. - damien
você instalou o windows 7 primeiro e depois o linux. Então, o linux reconhece janelas que não são reconhecidas pelo Windows. Tente reinstalar o windows7, você vai ver o que eu quis dizer. - Web-E
Não faça isso quando você tiver partições criptografadas (luks), isso estragou tudo. Ele também reinstala o GRUB com o apt-get - não tem idéia do por que está fazendo isso. - Meng Tian
reparo de inicialização suporta o modo legado muito bem, talvez você precise inicializar o live cd / usb no modo legado bem @ fuzzyanalysis :) - Web-E


Eu nunca tive problemas usando estas instruções:
https://wiki.ubuntu.com/Grub2#Recover 

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

MÉTODO 3 - CHROOT

Este método de instalação usa o comando chroot para obter acesso a   os arquivos do sistema quebrado. Uma vez que o comando chroot é emitido, o   O LiveCD trata o sistema quebrado como seu. Comandos executados em um   ambiente chroot afetará os sistemas de arquivos de sistemas quebrados e não   aqueles do LiveCD.

  1. Inicialize no LiveCD Desktop (Ubuntu 9.10 ou posterior). Por favor, note que o Live CD deve ser o mesmo que o sistema que você está consertando - ou   32 bits ou 64 bits (se não, o chroot falhará).

  2. Abra um terminal (Aplicativos> Acessórios> Terminal).

  3. Determine sua partição normal do sistema - (o switch é um "L" minúsculo)

    sudo fdisk -l
    

    Se você não tem certeza, corra

    df -Th  
    

    Procure o tamanho correto do disco e o formato ext3 ou ext4.

  4. Monte sua partição normal do sistema:

    Substitua a partição correta: sda1, sdb5 etc.

    sudo mount /dev/sdXX /mnt  
    

    Exemplo: sudo mount /dev/sda1 /mnt 

  5. Apenas se você tiver uma partição de inicialização separada:   sdYY é a designação da partição / boot (por exemplo, sdb3)

    sudo mount /dev/sdYY /mnt/boot
    
  6. Monte os sistemas de arquivos virtuais críticos:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /dev/pts /mnt/dev/pts
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    
  7. Chroot no seu dispositivo de sistema normal:

    sudo chroot /mnt
    
  8. Se não há /boot/grub/grub.cfg ou não está correto, crie um usando

    update-grub
    
  9. Reinstale o GRUB 2:

    Substitua o dispositivo correto - sda, sdb, etc. Não especifique um número de partição.

    grub-install /dev/sdX
    
  10. Verifique a instalação (use o dispositivo correto, por exemplo, sda. Não especifique uma partição):

    sudo grub-install --recheck /dev/sdX
    
  11. Saia do chroot: CTRL-D no teclado

  12. Desmontar sistemas de arquivos virtuais:

    sudo umount /mnt/dev/pts
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    
  13. Se você montou uma partição / boot separada:

    sudo umount /mnt/boot
    
  14. Desmonte o diretório / usr do LiveCD:

    sudo umount /mnt/usr
    
  15. Desmontar o último dispositivo:

    sudo umount /mnt
    
  16. Reinicie.

    sudo reboot
    

34
2018-04-27 02:15



Apenas uma observação de que não é necessário se preocupar em desmontar as coisas, porque a reinicialização cuidará disso automaticamente. Enviando umount comandos desperdiça tempo. - Scott Severance
sudo umount -a deve cuidar deles também. Não é uma má prática se você tiver alguns momentos. Pelo menos, você lembra do que está acontecendo e, em alguns casos (de canto / marginal), ele pode impedir que a reinicialização pare para avisá-lo ou aguardar a entrada. - belacqua
+1 para alertar sobre a partição / boot separada. - qed
Eu fiz isso várias vezes em sistemas diferentes e concordo que os resultados falam por si (embora eu também pule o umount). - Elder Geek


Inicialize a partir de um pendrive ou CD USB Ubuntu ao vivo e
Instalar 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 Sistema-> Administração-> Boot-Repair se usar o Gnome ou procurar "reparo de inicialização" no painel, 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 Localização 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

Documentação:


19
2017-07-30 19:25



Web-E já deu isso responda. Talvez melhorar esse em vez disso? Deixei um comentário sobre porque não funcionou. - Dan Dascalescu
Este método funcionou para mim depois de um caso particularmente desagradável de uma atualização do Windows 10 sobrescrevendo o GRUB e quebrando seu próprio gerenciador de inicialização. Seguindo esse procedimento, o Windows e o Linux voltaram. No meu caso, era o Linux Mint 18.1, e os menus de reparo de inicialização pareciam um pouco diferentes, mas tudo funcionou bem. Obrigado! - TheBigH


Basta 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).


11
2018-03-11 22:09



Estas instruções sozinhas não restauram o Gerenciador de Inicialização do Grub - quando eu as testei, eles adicionaram uma opção de inicialização extra no Windows que, na seleção, reiniciou minha máquina e depois me levou a um prompt do grub>. Então, seria necessário mais etapas sobre o que fazer a seguir. - therobyouknow
O easyBCD me permitiu adicionar e remover opções de inicialização que eu pude ver tanto no Windows Boot Loader quanto no BIOS, mas elas nunca funcionaram porque o easyBCD se baseia em algum tipo de mágica automatizada para encontrar partições Linux ... não funcionou quando minha partição Linux estava em um disco rígido separado. - Fuzzy Analysis


Existe agora uma solução mais simples:

  1. Reinicialize e insira as opções de BIOS do seu computador (F2 ou às vezes F11).
  2. Vou ao Boot menu e selecione Prioridade do dispositivo de boot
  3. Verifique se Gerenciador de inicialização do Windows está acima da unidade de inicialização principal 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.


5
2017-12-15 13:04



Isso acabou sendo a opção mais limpa para mim. É mais alguns golpes de tecla, mas ei, funciona. Eu tenho uma mistura de dispositivos inicializados Legacy e UEFI. Se os usuários estiverem inicializando um sistema operacional muito mais do que uma variedade de outros, isso pode ser mais rápido (e seguro) a longo prazo. - Fuzzy Analysis
Isso funcionou para mim também, depois que o Windows 10 se atualizou automaticamente. - luis_js
Esta solução funcionou para mim quando eu excluí o Ubuntu do windows 10. - Vikas Gupta


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 chance (pequena) de criar novos problemas.

Portanto, 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) como 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 GUI de terceiros gratuita (para a versão básica) para gerenciar a ordem de inicialização EFI. É bastante auto-explicativo - localize o ubuntu entrada 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 -- As janelas bcdedit ferramenta 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 um Administrador Janela de 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 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. As chances são as ubuntu entrada para arrancar O Ubuntu irá aparecer neste menu de arranque, permitindo-lhe arrancar para o 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 maneira, 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#### número.
    4. Tipo 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 o ubuntu entrada movida para o topo da lista.
  • Utilitário de configuração de firmware - Alguns utilitários de configuração de 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 o uso de 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 do modo EFI do que reinstalar o GRUB cegamente.


3
2017-07-13 15:03



manualmente uma única inicialização em linux (fedora28 no meu caso) através do gerenciador de inicialização do EFIs built-in me permitiu usar efibootmgr para reordenar o boot-order (como descrito por Rod -> obrigado!) que foi mexido por uma atualização win10. Depois, o GRUB-bootmanager aparece como antes da atualização, então posso confirmar que a solução fornecida funcionou para mim. Não consegui encontrar a versão básica do EasyUEFI, mas apenas uma versão de teste da versão pro não gratuita oferecida. - antiplex