Recuperando-se do acidente 'grub rescue' [fechado]

25

Originalmente postado no AskUbuntu.com ...

AskUbuntu has adopted a policy of closing questions about EOL (End Of Life) versions. There's a vocal contingent to remove them as well. To prevent possible loss of this popular question (342335 views to date), am placing a revised version here. --- docsalvager

O sistema "clássico" ...

O GRUB 2 coloca vários arquivos *.mod (módulos do kernel) em /boot/grub . A exclusão desses arquivos (achando que foram arquivos de som perdidos) resultou em falha na reinicialização e no prompt grub rescue> .

Como recuperar-se nesta situação?

    
por DocSalvager 02.08.2014 / 16:39

2 respostas

29

Recuperando-se de uma falha de resgate grub ...

  • grub rescue> não suporta cd , cp ou quaisquer outros comandos do sistema de arquivos, exceto sua própria variação de ls , que é realmente um tipo de comando find .
  • Primeiro, precisamos encontrar a partição com o diretório /boot contendo o vmlinuz e outros arquivos de imagem de inicialização ...

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
    • ls sem argumentos retorna as quatro partições neste sistema.
    • ls (hd0,4)/boot não encontra um diretório /boot na partição (hd0,4) .
    • ls (hd0,3)/boot não encontra um diretório /boot na partição (hd0,3) .
    • ls (hd0,2)/boot encontra um diretório /boot na partição (hd0,2) e contém vmlinuz e outros arquivos de imagem de inicialização que desejamos.
  • Para inicializar manualmente a partir do prompt grub rescue> ...

    grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic  
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
    • Defina root para usar o diretório /boot na partição (hd0,2) .
    • Carregar o módulo grub linux .
    • Configure esse módulo para usar a imagem do kernel vmlinuz-2.6.32-33-generic .
    • Defina initrd (disco de inicialização do RAM) para usar a imagem initrd.img-2.6.32-33-generic .
    • Inicialize o Linux.
  • Isso inicia com um prompt de linha de comando BusyBox que possui todos os comandos básicos do sistema de arquivos ( e depois alguns! ).

  • Em seguida, poderia mover os arquivos *.mod de volta para o diretório /boot/grub ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Reinicie com sucesso!

Veja também ...

por 02.08.2014 / 16:39
42

Esta resposta é para outras pessoas por aí que a resposta do DocSalvager não funciona.

  1. Eu segui o uso de ls do DocSalvager para encontrar a partição correta do disco rígido. No meu caso, foi (hd0,msdos5) .
  2. Em seguida, executei os seguintes comandos para voltar à tela normal do carregador de inicialização do grub.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Após a inicialização no Ubuntu, eu consertei o gerenciador de inicialização do grub com os seguintes comandos do terminal.

    sudo grub-install /dev/sda 
    

Consulte esta fonte para uma análise visual desse processo.

    
por 18.11.2014 / 18:15