Como executo o update-grub a partir de um LiveCD?

62

Ok, então eu fiz algo estúpido. Eu estava tentando limpar minhas entradas do Grub e removi acidentalmente todos os meus kernels do Linux (eles ainda estão no disco rígido). Então agora, obviamente, o Grub não me dá nenhuma maneira de inicializar no Ubuntu; Posso inicializar no Windows muito bem, mas o Ubuntu nem está listado.

Então, eu só quero executar o "sudo upgrade-grub" de alguma forma para restaurar o Ubuntu na lista. Posso inicializar a partir de um LiveCD, mas uma vez lá, como executo esse comando? (Minha instalação do Ubuntu está no sda5, a propósito.)

Kelley
fonte
Isso funciona perfeitamente ... fez isso apenas 2 dias
atrás
neste tópico, quero apontar para - que, às 12h10, o comando update-grub não funciona com o grub <2.0 ?! - Eu mesmo tinha último fim de semana estragou a minha instalação de 12.10 (pear OS 7.0.1) com o grub-install e depois atualizar-grub não estava funcionando - tinha de fazer resgate com supergrub-CD ...
dschinn1001

Respostas:

81

Como você diz que o seu carregador de inicialização do grub aparece, mas o menu está vazio, acho que você não precisa reinstalar o grub, mas, como você pergunta, execute o update-grub. Para conseguir isso, você pode usar um Live CD, montar as partições relevantes do disco rígido, executar o chroot no diretório montado e executar o update-grub, que deve funcionar como se você estivesse operando no disco rígido real.

Inicialize com o seu Live CD, selecionando "Experimente o Ubuntu sem instalar".

Uma vez inicializado, abra um terminal (ctrl-alt-t) e monte sua partição Ubuntu no / mnt. Estou assumindo que a partição Ubuntu é / dev / sda5, mas você deve determinar isso sozinho. Entre em contato se precisar de ajuda para fazer isso:

sudo mount /dev/sda5 /mnt

Em seguida, monte mais alguns diretórios necessários:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Além disso, se você tiver uma partição de inicialização do Ubuntu separada (bastante incomum atualmente, mas pode ser o caso):

sudo mount /dev/sdaX /mnt/boot

Como você pode saber se possui uma partição de inicialização?

Depois de montar sua partição Ubuntu, abra /mnt/etc/fstab. Se você vir uma entrada /boot, observe para qual dispositivo ele está apontando ( /dev/sda4talvez?). Este é o que você precisa montar.

Depois de montados, faça o chroot para começar a usar o diretório montado como partição raiz:

sudo chroot /mnt

Você receberá um #/aviso. A primeira coisa a fazer é confirmar que você está usando o /bootdiretório correto . Vá /boot/grube veja os arquivos lá. Deve haver um monte de arquivos .mod e um arquivo grub.cfg. Se o diretório estiver vazio, não continue, porque isso significa que NÃO é o bootdiretório atual . Olhe acima para ver como determinar se você precisa montar um bootdiretório adicional .

Depois de confirmar que /boot/contém os arquivos corretos, o que significa que é o local correto, digite:

sudo update-grub

Isso deve recriar seu arquivo /boot/grub/grub.cfg com as entradas do menu.

Então saia do chroot:

exit

Neste ponto, convém verificar se as coisas foram atualizadas corretamente. Para isso, cd /mnt/boot/grube verifique se os arquivos do grub estão lá, deve haver um monte de arquivos .mod e grub.cfg, este último deve ter entradas para os kernels do Ubuntu. Se você vir apenas o grub.cfg e nenhum arquivo .mod, significa que este NÃO é o diretório de inicialização correto, veja acima como montar uma partição de inicialização separada.

Desmonte os sistemas de arquivos:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

E então reinicie, espero que seu menu Grub seja restaurado.

roadmr
fonte
Quando tento executar os três comandos de montagem, recebo "o ponto de montagem / mnt / dev não existe" ou o correspondente para cada um.
Kelley
é sua instalação do Ubuntu em / dev / sda5? Nesse caso, depois sudo mount /dev/sda5 /mntvocê poderá cd /mntver a árvore da instalação do Ubuntu lá. Deve ter dev, sys e proc. Caso contrário, talvez você esteja montando a partição errada. Você pode verificar isso? Obrigado!
roadmr
Reiniciei o LiveCD e, desta vez, parece estar funcionando. Eu devo ter digitado algo errado na primeira vez, embora tenha sido cuidadoso. Enfim, estou reiniciando agora ... e não, nada mudou. Ainda não há escolha do Ubuntu no menu Grub.
Kelley
Então, para responder sua pergunta, depois de executar "sudo mount / dev / sda5 / mnt" e depois "cd / mnt", eu vejo dev, sys e proc.
Kelley
11
Senhor, você salva vidas :) Obrigado por isso. Funcionou como um encanto.
ereOn
14

Inicialize a partir de um Live CD.

Pressione Alt+ Ctrl+ Tpara abrir o terminal e execute os seguintes comandos:

sudo mount / dev / sda5 / mnt

Instale o carregador de inicialização GRUB2:

sudo grub-install - diretório raiz = / mnt / dev / sda

Isso é /dev/sda- o próprio disco rígido, não a partição Ubuntu - /dev/sda5.

Desmonte a partição Ubuntu e reinicie o computador da seguinte maneira:

sudo umount / dev / sda5; reinicialização do sudo

Se você tiver mais de um sistema operacional instalado, detecte novamente os sistemas operacionais da seguinte forma:

sudo update-grub

É isso aí!

Basharat Sialvi
fonte
11
meu sinalizado para exclusão - não apontam na mesma coisa duas vezes
23 93 26 35 19 57 3 89
Obrigado, mas isso não funciona. Ele reinstala o Grub, mas quando eu reinicio, ele ainda não foi atualizado, então minha instalação do Ubuntu ainda não aparece no Grub. De alguma forma, preciso atualizar o Grub antes de reiniciar, como no LiveCD.
Kelley
@ Kelley Você tem certeza de que a instalação do Ubuntu está no sda5? Você pode verificá-lo executando sudo fdisk -l. A instalação do Ubuntu terá um */ dev / sdxx depois.
Basharat Sialvi
Sim, está no sda5. No entanto, o * é após sda2, que é a minha partição do Windows (e a última partição na qual eu fui capaz de inicializar, pois é a única opção no meu menu do Grub).
Kelley
Chroot. Por favor, leia outras respostas.
Ish
1

Minha solução para esse problema foi:

  1. faça o download do supergrub2disk em http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. coloque-o no pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. inicialize o computador do pendrive com o supergrub2disk nele
  4. faça o login no seu Ubuntu
  5. obtenha o Reparo de inicialização do Ubuntu em https://help.ubuntu.com/community/Boot-Repair

Talvez não seja a solução mais rápida, mas para mim foi a mais fácil.

jmarceli
fonte
1

Esta solução é exatamente a mesma da resposta do roadmr, exceto muito mais fácil.

  1. Inicialize no AntiX Live CD.
  2. Menu> Aplicativos> Ferramentas do Sistema> Reparo de Inicialização
  3. Selecione 'Reparar arquivo de configuração do GRUB' (esta opção executa o update-grub)
  4. Selecione a unidade / partição onde reside / boot
  5. Reinicie quando terminar.

No meu caso particular, 'Reinstall GRUB Bootloader' foi corrigido para mim. Tenho uma configuração de inicialização dupla do Windows / Linux. Eu usei o Macrium 7 para criar um clone de uma unidade para um arquivo. Em seguida, restaure esse arquivo para uma nova unidade. Depois de restaurá-lo na nova unidade, ele inicializava em uma tela preta com um cursor piscando no canto superior esquerdo .

Jeff Luyet
fonte
-1

Obrigado por toda a grande ajuda! No entanto, no final, nada parecia funcionar e, como eu tinha uma partição home / separada, consegui reinstalar o Ubuntu sem perder nenhum dado. Eu ainda tenho que reinstalar programas e fazer algumas configurações, mas tudo parece bom neste momento.

Kelley
fonte
11
Fico feliz em saber que você resolveu de alguma forma, mas o chrooting deveria ter funcionado, e eu considero a melhor solução.
Mahesh
Sim. Não sei por que não funcionou, mas a resposta foi ótima (e eu a votei). Vocês deram muita ajuda, e talvez as respostas ajudem alguém a superar esse problema.
Kelley