Ripristino dall'arresto anomalo 'grub rescue>' [chiuso]


25

Originariamente pubblicato su AskUbuntu.com ...

AskUbuntu ha adottato una politica di chiusura delle domande sulle versioni EOL (End Of Life). C'è anche un contingente vocale per rimuoverli. Per evitare la possibile perdita di questa domanda popolare (342335 visualizzazioni fino ad oggi), sto inserendo una versione rivista qui. --- docsalvager

Il sistema "classico" ...

  • Puppy Linux 5.2.8 (Lucid) basato su Ubuntu 10.04 (Lucid Lynx)
  • Caricatore di avvio GRUB 2

GRUB 2 inserisce un numero di *.modfile (moduli del kernel) /boot/grub. L'eliminazione di questi file (ritenendo che fossero file audio fuori luogo) ha comportato un errore al riavvio e al prompt grub rescue>.

Come recuperare in questa situazione?


1
Sembra una domanda stupida .. ovviamente ripristini i file eliminati dal backup o reinstalla grub (e ci sono molte domande su come farlo già)
psusi,

Le statistiche assolute sulle visualizzazioni passate sono tanto rilevanti quanto quelle del quotidiano di ieri.
Anthon,

I giornali del passato hanno risolto innumerevoli crimini e sono stati responsabili di una grande quantità di problem solving che ha reso il mondo un posto migliore.
DocSalvager il

Mi sembrerebbe che l'avvio in modalità di ripristino dal DVD e reinstallare Grub da lì probabilmente sarebbe l'ideale. Probabilmente è molto più semplice per la maggior parte delle persone poiché la perdita di dati menzionata dovrebbe essere limitata ai file nel pacchetto.
Bratchley,

Per non dire che non penso che pescare i file specifici da initrd non sia intelligente. Penso solo che è probabile che confonda le persone in quanto aiuta. L'avvio in modalità di salvataggio / ripristino è una procedura più comune.
Bratchley,

Risposte:


43

Questa risposta è per gli altri là fuori per cui la risposta di DocSalvager non funziona.

  1. Ho seguito l'uso di DocSalvager lsper trovare la corretta partizione del disco rigido. Nel mio caso lo era (hd0,msdos5).
  2. Quindi ho eseguito i seguenti comandi per tornare alla normale schermata del caricatore di avvio di GRUB.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Dopo l'avvio in Ubuntu ho riparato il boot loader grub con i seguenti comandi dal terminale.

    sudo grub-install /dev/sda 
    

Si prega di fare riferimento a questa fonte per una passeggiata visiva di questo processo.


6
Sono contento che abbiate pubblicato prima che fosse chiuso
smac89

2
Perfetto: esattamente l'aiuto di cui avevo bisogno per l'avvio! Ho anche eseguito sudo update-grubprima grub-install, perché il layout della mia partizione era cambiato.
mwfearnley,

Quanto dura il insmod normalcomando? Dopo aver premuto Invio, il mio Ubuntu si blocca. Devo ammettere che è comunque in esecuzione come una macchina virtuale in Oracle VirtualBox.
Snark

1
Aggiornamento: Alla fine è tornato con error: failure reading sector 0x8019a4 from 'hd0'quindi suppongo che sia piuttosto terminale!
Snark

risposta leggendaria!
Zack

28

Ripristino da un incidente di salvataggio di grub ...

  • grub rescue>non supporta cd, cpo altri comandi del file system, eccetto la propria variazione di lscui è davvero una sorta di findcomando.
  • Quindi, prima, dovevo trovare la partizione con la /bootdirectory contenente vmlinuze altri file di immagine di avvio ...

    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 senza argomenti restituisce le quattro partizioni su questo sistema.
    • ls (hd0,4)/bootnon trova una /bootdirectory sulla partizione (hd0,4).
    • ls (hd0,3)/bootnon trova una /bootdirectory sulla partizione (hd0,3).
    • ls (hd0,2)/boottrova una /bootdirectory sulla partizione (hd0,2)e contiene un vmlinuze altri file immagine di avvio desiderati.
  • Per avviare manualmente dal grub rescue>prompt ...

    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  
    
    • Impostare rootper utilizzare la /bootdirectory sulla partizione (hd0,2).
    • Carica il modulo grub linux.
    • Imposta quel modulo per usare l'immagine del kernel vmlinuz-2.6.32-33-generic.
    • Impostare initrd (disco RAM init) per utilizzare l'immagine initrd.img-2.6.32-33-generic.
    • Avvia Linux.
  • Questo avvia un prompt della riga di comando BusyBox che ha tutti i comandi di base del filesystem ( e poi alcuni! ).

  • Quindi potrebbe spostare i *.modfile nella /boot/grubdirectory ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Riavvio riuscito!

Guarda anche ...


Non riesco a trovare alcuna cartella di avvio al livello principale in BusyBox
souparno majumder

1
Le immagini di avvio vmlinuz, ... che stai cercando potrebbero trovarsi nel filesystem di root di livello superiore, quindi prova a usare solo una barra. Ciò mostrerà anche le directory di livello superiore. Se le immagini di avvio non si trovano nella radice di livello superiore, puoi iniziare a provare la directory più promettente fino a quando non le trovi. Ad esempio: ls (hd0,1)/, ls (hd0,2)/, ls (hd0,2)/initramfs/, ecc ..
DocSalvager

Nel mio caso, dopo l'esecuzione ls (hd0,7)/boot, mostra attempt to read or write outside of disk 'hd0'.
margherita,

Ci sono meno di 7 partizioni sull'unità hd0. Potrebbe anche essere che ci sia dello spazio non allocato sull'unità che non fa parte di alcuna partizione.
DocSalvager,

1
Ho dovuto impostare il prefisso su / boot / grub prima di poter eseguire insmod linux!
Emil,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.