Grub rescue - errore: filesystem sconosciuto


59

Ho installato un sistema multiboot. Il sistema ha tre unità. Il multiboot è configurato con Windows XP, Windows 7 e Ubuntu, tutti sulla prima unità. Avevo ancora molto spazio non partizionato sull'unità e lo riservavo per l'aggiunta di altri sistemi operativi e per la memorizzazione di file lì in futuro.

Un giorno sono andato avanti e ho scaricato Partition Wizard e creato una partizione logica NTFS da Windows 7, lasciando ancora spazio non partizionato. Tutto ha funzionato bene, fino a quando non ho riavviato il computer qualche giorno dopo.

Ora sto ricevendo:

error: unknown filesystem.  
grub rescue>

Innanzitutto sono stato sorpreso di non trovare alcun tipo di comando di aiuto, provando:

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

Ora sono bloccato con un sistema non avviabile. Ho iniziato a ricercare il problema e ho scoperto che le persone di solito raccomandano di avviare un Live CD e risolvere il problema da lì. C'è un modo per risolvere questo problema dall'interno di Grub Recovery senza la necessità di Live CD?

AGGIORNARE

Seguendo i passaggi dei comandi Persist digitati sul salvataggio di GRUB , sono stato in grado di avviare il prompt di initramfs. Ma non oltre.

Così lontano dalla lettura del manuale sul salvataggio di grub , sono stato in grado di vedere i miei dischi e partizioni usando il lscomando. Per il primo disco rigido vedo quanto segue:
(hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Ora so che (hd0, msdos6) contiene Linux, poiché ls (hd0,msdos6)/elenca le directory. Altri daranno "errore: filesystem sconosciuto".

AGGIORNAMENTO 2

Dopo i seguenti comandi sto arrivando al menu di avvio e posso avviare Windows 7 e Ubuntu, ma al riavvio devo ripetere questi passaggi.

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

AGGIORNAMENTO 3

Grazie Shashank Singh, con le tue istruzioni ho semplificato i miei passi a quanto segue. Ho imparato da te che posso sostituire msdos6 con solo un 6 e che posso semplicemente fare insmod normalinvece di insmod /boot/grub/linux.mod. Ora ho solo bisogno di capire come salvare queste impostazioni da grub stesso, senza avviare alcun sistema operativo.

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

AGGIORNAMENTO 4

Bene, sembra che sia un requisito per l'avvio in Linux. Dopo l'avvio in Ubuntu ho eseguito i seguenti passaggi descritti nel manuale :

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

Questo non ha risolto il problema. Ricevo ancora il prompt di salvataggio di grub. Cosa devo fare per risolverlo definitivamente?

Ho anche imparato che i numeri di unità come in hd0 devono essere tradotti in lettere di unità come in / dev / sda per alcuni comandi. hd1 sarebbe sdb, hd2 sarebbe sdc e così via. Le partizioni elencate in grub come (hd0, msdos6) verrebbero tradotte in / dev / sda6.

AGGIORNAMENTO 5

Non sono riuscito a capire perché quanto segue non ha risolto grub:

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

Quindi ho scaricato boot-repair sulla base di una risposta dal post https://help.ubuntu.com/community/Boot-Repair . Sembrava fare il trucco dopo aver scelto l'opzione "Riparazione consigliata (ripara i problemi più frequenti)".


zdnet.com/… ha anche alcune informazioni utili su questo argomento.
K7AY

avendo un problema simile, ma nel mio live USB è anche inutile goo.gl/Mr61V1
Ramesh,

La modifica dell'ordine di avvio, a partire dal CD di ripristino di Windows 7, il terminale di avvio, digitando "Bootrec.exe / FixMbr" (senza virgolette) e il riavvio risolto il problema.
consuela,

Nel precedente aggiornamento3 ha funzionato per me, ma ora lo stesso problema. Non funziona nemmeno ho provato con le cartelle elencate in grub rescue. Ho provato a eseguire il backup dei dati utilizzando il dispositivo ISO Ubuntu, Ubuntu esistente non elencato. Aiutami cosa dovrei fare ora?
Jaccs

Questa sembra essere la domanda canonica, ma una domanda ancora più antica è il file system Unknown: grub rescue .
Peter Mortensen,

Risposte:


25

Non sono riuscito a capire perché quanto segue non ha risolto grub:

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

Quindi ho scaricato boot-repair in base a una risposta dai comandi Persist digitati sul posto di salvataggio di GRUB . Sembrava fare il trucco dopo aver scelto l'opzione "Riparazione consigliata (ripara i problemi più frequenti)".

Ho anche usato Grub Customizer per personalizzare l'ordine delle voci di avvio.


Non ha funzionato perché, dopo aver eseguito l'ultimo comando, è necessario eseguire nuovamente sudo update-grub. In una sessione live, è necessario montare il filesystem di destinazione su mnt, chroot nel filesystem e quindi eseguire sudo update-grub dal chroot.
mchid,

Utilizzando le informazioni fornite da questa risposta (installazione e utilizzo del boot-repair) e dalla domanda, ha funzionato per il ripristino su un netbook Acer in cui avevo scelto un elemento errato nel menu di GRUB, "Ambiente ripristino Windows (caricatore) (attivo /dev/sda1)" , durante l'avvio.
Peter Mortensen,

7

Esiste una causa alternativa di questo problema. In questo caso particolare, GRUB era in qualche modo corrotto e doveva essere riparato o reinstallato. Tuttavia, come mostrato nel salvataggio di Grub non riesce con "Boot Repair" con errore "unknown file system" , è anche possibile che la partizione di root su cui è installato GRUB possa essere danneggiata. Per risolvere questo problema:

Questa è una possibile soluzione, ma non dovrebbe essere utilizzata probabilmente per non danneggiare ulteriormente la partizione di root. Eseguendo il comando fsck -t ext4 /dev/sda1, questo programma tenta di cercare e riparare errori su un filesystem danneggiato. Sostituisci sda1 con la tua effettiva partizione di root. Sostituisci ext4 con il filesystem attuale; devi conoscere il file system altrimenti la partizione sarà più corrotta. Vedere Riparazione di un file system danneggiato per ulteriori informazioni.


Anche se questa domanda ha una risposta, esiste un modo alternativo per risolvere il problema che ha funzionato per me. I passaggi sono spiegati nel doloroso video Grub Rescue - Guida per principianti . In breve, reinstallerà GRUB 2 del tutto invece di ripararlo.

Poiché questo video è così doloroso da guardare, elencherò i passaggi seguenti (come dovrei indipendentemente da quanto sia doloroso guardare il video)

  1. Avvia una sessione live di Ubuntu. Il video usa un live CD mentre io ho usato un live USB. Mi sono assicurato che l'USB live avesse la stessa versione di Ubuntu che avevo sul mio hard disk.
  2. Trova dove è stata montata la partizione di root. Nel video, l'utente utilizza Nautilus per navigare attraverso ciascuna unità montata. Era montato con una lunga serie di numeri e caratteri. In questo caso, attenersi alla seguente procedura per rimontare la partizione. Altrimenti, passare al punto 5.
  3. Apri il terminale con Ctrl+ Alt+ Te usa il mountcomando per trovare il nome della partizione.
  4. Montare la partizione. Crea una nuova cartella nella cartella multimediale. sudo mkdir /media/ubuntu. Quindi monta semplicemente la tua partizione su quella cartella. sudo mount /dev/sdxx /media/ubuntudove xxdi sdxxè determinato nel passaggio 3.
  5. Associa le seguenti directory dalla directory principale del tuo CD / USB live a quella della tua directory principale nella tua versione di Ubuntu. Le directory sono dev proce sys. Fallo con i seguenti comandi:

    sudo mount --bind /dev /media/ubuntu/dev
    sudo mount --bind /sys /media/ubuntu/sys
    sudo mount --bind /proc /media/ubuntu/proc
    
  6. Cambia la directory principale con quella della tua partizione Ubuntu. sudo chroot /media/ubuntu/

  7. Dopo aver fatto quanto sopra, l'installazione di GRUB 2 lo installerà nella directory principale della distribuzione di Ubuntu e non in quella dei CD / USB live. Quindi vai avanti e corrisudo grub-install /dev/sdx

Ecco come riparare GRUB usando un CD / USB live. Questo metodo è stato sviluppato dall'utente crazytechzone di YouTube.


6

Uso:

  1. set prefix=(hdX,Y)/boot/grub. Utilizzare i valori determinati in precedenza.
    Esempio: se il sistema Ubuntu è su sda5, inserire:
    set prefix=(hd0,5)/boot/grub
  2. set root=(hdX,Y). Esempio:set root=(hd0,5)
  3. insmod normal. Tentativo di caricare il modulo normale.
  4. normal

Fondamentalmente abbiamo bisogno di GRUB per sapere dove si trova la /boot/grubcartella. Se questo non funziona, suppongo che fare un'installazione di GRUB da un CD di avvio sia una buona opzione.


Grazie per il vostro aiuto Penso che il mio problema potrebbe essere stato che la mia directory di avvio è su / dev / sdb, non su / dev / sda. Ma il boot-repair lo ha riparato automaticamente, quindi non ho dovuto fare altro.
user53817

3

Divertente, ho avuto lo stesso problema un'ora fa!

Comunque, questo è quello che ho fatto.

  1. Carica ubuntu:

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

    dal momento che Ubuntu è installato in 6 giusto?

  2. eseguire il terminale:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    

Grazie per la tua risposta, ma ho risolto il problema con lo strumento di riparazione di avvio prima che tu abbia pubblicato la risposta. Ora ho aggiornato questo post con la mia soluzione. Vorrei poter provare anche il tuo metodo.
user53817

2

Installa Boot-Repair in Ubuntu

  1. Avviare il computer su un live-CD di Ubuntu o live-USB.

  2. Scegli "Prova Ubuntu"

  3. Connetti a Internet

  4. Apri un nuovo Terminale ( Ctrl+ Alt+ T), quindi digita:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  5. Press Enter.

  6. Quindi digitare:

    sudo apt-get install -y boot-repair && boot-repair
    
  7. Press Enter.

Utilizzando Boot-Repair

inserisci qui la descrizione dell'immagine

Riparazione consigliata

  1. Avviare Boot-Repair da:

    un. The Dash (il logo Ubuntu in alto a sinistra dello schermo)

    b. O Sistema-> Amministrazione-> menu Ripristino avvio (solo Ubuntu 10.04)

    c. O digitando 'boot-repair' in un terminale

  2. Quindi fare clic sul pulsante "Riparazione consigliata". Al termine della riparazione, annotare l'URL (paste.ubuntu.com/XXXXX) visualizzato su un foglio, quindi riavviare e verificare se è stato ripristinato l'accesso ai sistemi operativi.

  3. Se la riparazione non è andata a buon fine, indica l'URL alle persone che ti aiutano tramite e-mail o forum.


@penreturn Grazie mille, ha funzionato meravigliosamente. : D
Jeel Shah,

0

Un'altra causa del problema è che in rari casi il filesystem sull'unità di avvio potrebbe bloccarsi. Come menzionato in altre risposte, inizialmente uso il lscomando per elencare tutte le unità / partizioni nel prompt di ripristino di GRUB, ma tutte riportano un errore del file system sconosciuto . Ho finalmente risolto il problema su Ubuntu 16.04 (Xenial Xerus) ripristinando il filesystem come segue:

  1. Avvio da una chiavetta USB (provare Ubuntu senza installare)

  2. Trova l'unità di avvio (controlla la capacità dell'unità o esegui le operazioni fscksu ciascuna partizione):

    sudo fdisk -l
    
  3. Ripristina il file system:

    sudo fsck /dev/sdb1
    
  4. Dopo che il file system è stato riparato e pulito, riavviare la macchina dall'unità di avvio.

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.