Resgate do Grub - erro: sistema de arquivos desconhecido

53

Eu tenho um sistema de inicialização múltipla configurado. O sistema tem três unidades. Multiboot é configurado com o Windows XP, Windows 7 e Ubuntu - todos na primeira unidade. Eu tinha muito espaço não particionado na unidade e estava reservando para adicionar outros sistemas operacionais e para armazenar arquivos no futuro.

Um dia, fui em frente e baixei o Partition Wizard e criei uma partição NTFS lógica dentro do Windows 7, ainda sobrando algum espaço não particionado. Tudo funcionou bem, até que reiniciei o computador alguns dias depois.

Agora estou chegando:

error: unknown filesystem.  
grub rescue>

Antes de tudo, fiquei surpreso em não encontrar nenhum tipo de comando de ajuda, tentando:

help , ? , man , --help , -h , bash , cmd , etc.

Agora estou preso com o sistema não inicializável. Comecei a pesquisar o problema e descobri que as pessoas geralmente recomendam inicializar um Live CD e corrigir o problema a partir dele. Existe uma maneira de corrigir esse problema de dentro do resgate sem o Live CD?

UPDATE

Seguindo os passos de Comandos persistentes digitados para o resgate do GRUB , eu foi capaz de arrancar para o prompt initramfs. Mas não em qualquer lugar além disso.

Até agora, a partir da leitura do manual em grub rescue , eu foi capaz de ver minhas unidades e partições usando o comando ls . Para o primeiro disco rígido, vejo o seguinte: (hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Agora sei que (hd0, msdos6) contém o Linux, pois ls (hd0,msdos6)/ lista diretórios. Outros darão "erro: sistema de arquivos desconhecido".

UPDATE 2

Após os comandos a seguir, estou chegando ao menu de inicialização e posso inicializar no Windows 7 e no Ubuntu, mas, na reinicialização, tenho que repetir essas etapas.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

UPDATE 3

Obrigado Shashank Singh, com suas instruções simplifiquei meus passos para o seguinte. Eu aprendi com você que eu posso substituir msdos6 com apenas um 6 e que eu posso fazer apenas insmod normal em vez de insmod /boot/grub/linux.mod . Agora eu só preciso descobrir como salvar essas configurações de dentro do próprio grub, sem inicializar em qualquer sistema operacional.

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

UPDATE 4

Bem, parece que é um requisito inicializar no Linux. Depois de inicializar no Ubuntu, executei as etapas a seguir descritas no manual :

sudo update-grub
sudo grub-install /dev/sda

Isso não resolveu o problema. Eu ainda recebo o prompt de resgate do grub. O que preciso fazer para corrigi-lo permanentemente?

Eu também aprendi que os números de drive como em hd0 precisam ser traduzidos para gerar letras como em / dev / sda para alguns comandos. hd1 seria sdb, hd2 seria sdc e assim por diante. Partições listadas no grub como (hd0, msdos6) seriam traduzidas para / dev / sda6.

ATUALIZAÇÃO 5

Não consegui descobrir por que o seguinte não corrigiu o grub:

sudo update-grub
sudo grub-install /dev/sda

Então baixei boot-repair com base em uma resposta de link . Isso pareceu fazer o truque depois que eu peguei a opção "Reparo recomendado (conserta problemas mais frequentes)".

    
por user53817 07.04.2012 / 04:16

4 respostas

23

Não consegui descobrir por que o seguinte não corrigiu o grub:

sudo update-grub
sudo grub-install /dev/sda

Então baixei reparo de inicialização com base em uma resposta de Os comandos Persist são digitados para o resgate do GRUB . Isso pareceu fazer o truque depois que eu peguei a opção "Reparo recomendado (conserta problemas mais frequentes)".

Eu também usei o Grub Customizer para personalizar a ordem das entradas de inicialização.

    
por user53817 07.04.2012 / 10:19
7

Existe uma causa alternativa deste problema. Nesse caso específico, o GRUB estava de alguma forma corrompido e precisava ser reparado ou reinstalado. No entanto, conforme mostrado em O resgate do Grub falha com " Reparo de inicialização "com erro" sistema de arquivos desconhecido ", também é possível que a partição raiz na qual o GRUB está instalado possa estar corrompida. Para corrigir isso:

Esta é uma solução possível, mas não deve ser usada para que sua partição raiz não seja mais corrompida. Executando o comando fsck -t ext4 /dev/sda1 , este programa tenta procurar e reparar erros em um sistema de arquivos corrompido. Substitua sda1 pela sua partição raiz atual. Substitua o ext4 pelo sistema de arquivos real; você precisa conhecer o sistema de arquivos ou a partição será mais corrompida. Consulte Reparando um sistema de arquivos corrompido para obter mais informações.

Embora essa pergunta tenha uma resposta, existe uma maneira alternativa de corrigir o problema que funcionou para mim. As etapas são explicadas no doloroso vídeo Grub Rescue - Guia para iniciantes . Em resumo, ele reinstalará o GRUB 2 ao invés de repará-lo.

Como esse vídeo é tão doloroso de assistir, vou listar as etapas abaixo (como eu deveria, independentemente de como é doloroso assistir ao vídeo)

  1. Inicie uma sessão ao vivo do Ubuntu. O vídeo usa um CD ao vivo, enquanto eu usei um USB ao vivo. Eu me certifiquei de que o USB ao vivo tivesse a mesma versão do Ubuntu que eu tinha no meu disco rígido.
  2. Descubra onde sua partição raiz foi montada. No vídeo, o usuário usa o Nautilus para navegar por cada unidade montada. Foi montado com uma longa seqüência de números e caracteres. Se esse for o caso, siga as etapas a seguir para remontar a partição. Senão, prossiga para o passo 5.
  3. Chame o terminal com Ctrl + Alt + T e use o comando mount para encontrar o nome da partição. / li>
  4. Monte a partição. Crie uma nova pasta na sua pasta de mídia. %código%. Em seguida, basta montar sua partição nessa pasta. sudo mkdir /media/ubuntu em que sudo mount /dev/sdxx /media/ubuntu de xx é determinado no passo 3.
  5. Ligue os seguintes diretórios do diretório raiz do seu CD / USB ao seu diretório raiz na sua versão do Ubuntu. Os diretórios são sdxx dev e proc . Faça isso com os seguintes comandos:

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. Altere o diretório raiz para o da sua partição do Ubuntu. sys

  7. Tendo feito o acima, instalar novamente o GRUB 2 irá instalá-lo no diretório raiz da sua distribuição do Ubuntu e não no CD / USB ao vivo. Então, vá em frente e execute sudo chroot /media/ubuntu/

E é como corrigir o GRUB usando um CD / USB ativo. Este método foi desenvolvido pelo usuário do YouTube crazytechzone.

    
por Nil 17.04.2013 / 02:31
5

Uso:

  1. %código%. Use os valores determinados anteriormente.
    Exemplo: Se o sistema Ubuntu estiver em sda5, digite:
    set prefix=(hdX,Y)/boot/grub
  2. %código%. Exemplo: set prefix=(hd0,5)/boot/grub
  3. %código%. Tente carregar o módulo normal.
  4. set root=(hdX,Y)

Basicamente, precisamos que o GRUB saiba onde está a pasta set root=(hd0,5) . Se isso não funcionar, acho que fazer uma instalação do GRUB a partir de um CD de inicialização é uma boa opção.

    
por Shashank Singh 07.04.2012 / 05:09
3

Engraçado, eu também tive o mesmo problema há uma hora atrás!

De qualquer forma, foi o que eu fiz.

  1. Carregue o Ubuntu:

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

    desde que o seu ubuntu esteja instalado em 6, certo?

  2. terminal de execução:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    
por Francis 07.04.2012 / 06:40