Prompt de resgate Grub, reparo grub

30

Eu reparticionei recentemente meu disco rígido e danifiquei o GRUB no meu sistema. Na inicialização, recebo o prompt de resgate do GRUB e preciso executar as seguintes etapas para inicializar normalmente:

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

(Essas etapas foram encontradas em outro post aqui!).

Estou muito cansado de repetir isso em cada inicialização, como faço para corrigir permanentemente o GRUB?

Codito ergo sum
fonte
1
Duas possibilidades: (1) Boot-Reparação (2) Super Grub Rescue Disk Ver: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA
1
As etapas listadas na pergunta para inicializar funcionaram para mim. Deve-se lembrar corretamente da partição do linux.
TheCrazyProgrammer
1
Como já foi dito, fazer update-grub e grub-install / dev / sda resolve o problema.
TheCrazyProgrammer
Veja a resposta de Karthik para "arquivo não encontrado": askubuntu.com/questions/443241/…
samis

Respostas:

11

Para corrigir o resgate do grub, siga as seguintes etapas:

  • A primeira coisa é que precisamos iniciar nosso sistema operacional somente depois que pudermos corrigir o grub.

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>

    Quando você vê esse erro primeiro, precisamos verificar se "Sistema de arquivos" é ext2 '

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 

essas são nossas unidades agora temos que verificar qual é o ext2.

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

vá para outras unidades até obter "O sistema de arquivos é ext2".

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

agora defina o caminho

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Agora basta corrigir o grub seguindo o comando em qualquer Ubuntu

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade

certifique-se de atualizar o grub após o login no sistema operacional

Roshan Sherkure
fonte
1
O OP já sabe como inicializar em seu sistema operacional. Essa resposta pode ser mais concisa.
Elder Geek
1
Esta resposta foi útil para mim. Meu problema não era exatamente o mesmo que a pergunta original; portanto, as informações adicionais se tornaram úteis.
retroj
1
+1 Isso foi corrigido por problemas em uma instalação com falha do KDE Neon.
Darren Lewis
erro: arquivo '/boot/grub/i386-pc/normal.mod' não encontrado O que devo fazer?
BhushanDhamale 26/06
7

Eu tentaria executar update-grubpara poder construir grub.conf/ grub.cfgnovamente.

Você também pode tentar usar grub-install, mas acho que esse não vai ajudar.

Se você quiser ler mais, verifique primeiro qual versão possui (GRUB 1 ou 2) executando:

dpkg -l | grep grub

Se você possui o GRUB 2, pode usar o seguinte tutorial: http://www.dedoimedo.com/computers/grub-2.html

É claro que tenha cuidado ao lidar com o GRUB, pois estamos falando sobre o processo de inicialização, que é um mecanismo sensível.

idgar
fonte
2
grub-install <correct-drive, i.e. /dev/sda>e update-grub2finalmente o fez por mim no Ubuntu 15.04
Greg Kramida
6

Parece-me que update-grubmonta o grub.cfg, mas você também precisa (re) executar grub-install(ou grub-setup?) Para atualizar os setores MBR / boot com as informações básicas - sobre qual partição encontrar o grub.cfgarquivo e aparentemente esses módulos.

mmaruska
fonte
4

Quando você recebe um prompt de recuperação do GRUB, isso significa que o carregador de inicialização do GRUB não pode localizar seus módulos na partição que os contém /boot/grub. A razão para isso é que o código que se encaixa no registro MBR da unidade é pequeno e, portanto, seu principal objetivo é localizar e carregar o restante do código do carregador de inicialização. Depois de carregar seus módulos, ele pode apresentar o menu GRUB e lidar com o restante do processo de inicialização. Se não conseguir encontrar os módulos, apresenta um prompt de resgate muito limitado.

Portanto, o que você está vendo é totalmente normal se você reparticionou, quebrando assim a referência que o carregador de inicialização tinha à partição que contém os módulos de inicialização.

Como você pode inicializar manualmente, a correção mais simples é inicializar e reinstalar manualmente o carregador de inicialização no MBR, para que ele tenha a referência correta para sua partição. A maneira de fazer isso é:

sudo grub-install /dev/sda

Isso pressupõe que você inicialize /dev/sda(na maioria dos casos, mas se não, substitua-o pela unidade correta).

Esta solução é muito mais simples do que usar o boot-repair, mas se você não tiver certeza, isso pode ser mais adequado.

bcbc
fonte
1
+1 para explicar o que está acontecendo em termos fáceis de entender.
monotasker
2

A maneira mais simples seria:

sudo apt-get purge grub-pc grub-pc-bin

Então:

sudo apt-get install grub-pc grub-pc-bin
hyao
fonte
2
Essa é uma abordagem de marreta que provavelmente funcionará, mas é mais simples reinstalar o gerenciador de inicialização para atualizar a referência para a partição (que foi interrompida pelo repartioning).
BCBC
1

Resolver caso final de falha de resgate do grub: problemas: 1. i386-pc não encontrado **** modo normal não está funcionando cp não está funcionando search.file não está funcionando . Tudo pode ser resolvido pelos seguintes comandos, também funciona com o Ubuntu 18.04. Etapa 1: Encontre a pasta raiz que contém o diretório.

ls

Por exemplo, se a pasta raiz estiver em (hd0, gpt4), digite

Isto é o que parece

ls (hd0, 4)/

Você verá alguns arquivos ou pastas:

meu arquivo raiz está em (hd0, gpt4)

Agora, se você tiver sorte, faça o seguinte:

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

Se você tiver sorte, ele resolverá o seu problema. Às vezes, as pessoas têm problemas como não conseguem encontrar a pasta 1386-pc. Nesse caso, você deve procurar onde está sua pasta do grub. Se você tiver um problema como:

boot / grub / i386-pc / normal.mod não encontrado

Nesse caso, você precisa encontrar a pasta grub2. Se você tiver o grub2 e dentro dessa pasta, poderá ter a pasta i386-pc. Então você precisa digitar

prefix=(hd0, 4)/grub2/

vai funcionar. Se você não possui o grub2 e não conseguiu localizar a pasta i386-pc, faça o seguinte:

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

depois de executar este comando, seu modo de recuperação do grub irá para o menu do grub . Agora você pode executar o comando linux.

comando linux

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

Ele o levará ao modo de recuperação. A partir daí, você pode escolher entre as várias opções de recuperação disponíveis. Se isso não ajudar, é necessário fazer o download de um sistema operacional ubuntu, por exemplo, o ubuntu 18.04. Você pode fazer o download no seguinte link: ubuntu link

Faça uma unidade inicializável e abra seu computador com esse disco ativo. Não irá prejudicar nenhum dos seus documentos. Veja um vídeo sobre como fazer isso. Agora você precisa encontrar a pasta do i386-pc. Estará em

rootContainingDirectory-usr-lib-grub

Agora copie o i386-pc para inicializar / grub / pasta. você pode ter um problema de permissão para superar esse tipo, o seguinte comando:

sudo nautilus

Agora clique com o botão direito do mouse nesse diretório e mude o proprietário para ubuntu live session user

siga o vídeo: mudança de permissão

Agora, depois de colá-lo na pasta boot / grub, reinicie e remova a unidade USB. Desta vez, use o 1º conjunto de comandos, ele funcionará. Se o comando cp estiver funcionando, você também poderá fazer isso no menu grub.

Sanat
fonte