Richiesta di salvataggio di Grub, riparazione di grub


30

Di recente ho ripartizionato il mio HDD e ho danneggiato GRUB sul mio sistema. All'avvio ricevo il prompt di ripristino di GRUB e devo eseguire i seguenti passaggi per avviare normalmente:

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

(Questi passaggi sono stati trovati su un altro post qui!).

Sono molto stanco di ripeterlo ad ogni avvio, come posso sistemare permanentemente GRUB?


1
Due possibilità: (1) Boot-Repair (2) Super Grub Rescue Disk Vedi: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA

1
I passaggi elencati nella domanda per l'avvio hanno funzionato per me. Si dovrebbe ricordare correttamente la partizione di Linux.
TheCrazyProgrammer,

1
Come altri hanno già detto facendo update-grub e poi grub-install / dev / sda risolve il problema.
TheCrazyProgrammer,

Vedi la risposta di Karthik per "file non trovato": askubuntu.com/questions/443241/…
samis,

Risposte:


12

Per correggere il salvataggio di grub, procedere come segue:

  • La prima cosa è che dobbiamo avviare il nostro sistema operativo solo dopo aver risolto grub.

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

    Quando vedi un errore del genere, dobbiamo prima verificare che "Filesystem" sia 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 

queste sono le nostre unità ora dobbiamo controllare quale è ext2.

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

scegli un'altra unità fino a quando non ottieni "Filesystem is 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

ora imposta il percorso

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Ora basta correggere grub seguendo il comando su qualsiasi Ubuntu

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

assicurati di aggiornare grub dopo aver effettuato l'accesso al sistema operativo


1
L'OP sa già come avviare il suo sistema operativo. Questa risposta potrebbe essere più concisa.
Elder Geek,

1
Questa risposta mi è stata utile. Il mio problema non era esattamente lo stesso della domanda originale, quindi le informazioni aggiuntive sono diventate utili.
retroj,

1
+1 Questo è stato risolto da problemi durante l'installazione di Neon di KDE non riuscita.
Darren Lewis,

errore: file '/boot/grub/i386-pc/normal.mod' non trovato Cosa devo fare?
BhushanDhamale,

7

Proverei a correre update-grubper costruire grub.conf/ di grub.cfgnuovo.

Puoi provare anche a usare grub-install, ma penso che questo non ti aiuterà.

Se vuoi saperne di più, controlla prima quale versione hai (GRUB 1 o 2) eseguendo:

dpkg -l | grep grub

Se hai GRUB 2, puoi usare il seguente tutorial: http://www.dedoimedo.com/computers/grub-2.html

Ovviamente stai attento a gestire GRUB mentre parliamo del processo di avvio, che è un meccanismo sensibile.


2
grub-install <correct-drive, i.e. /dev/sda>e update-grub2finalmente l'ho fatto per me su Ubuntu 15.04
Greg Kramida,

6

Mi sembra che update-grubassembli il grub.cfg, ma devi anche (ri) eseguire grub-install(o grub-setup?) Per aggiornare i settori MBR / boot con le informazioni di base - su quale partizione per trovare il grub.cfgfile e apparentemente questi moduli.


4

Quando viene visualizzato un prompt di ripristino di GRUB, significa che il bootloader di GRUB non è in grado di individuare i suoi moduli dalla partizione che li contiene /boot/grub. La ragione di ciò è che il codice che si adatta al record MBR dell'unità è minuscolo, quindi il suo scopo principale è individuare e caricare il resto del codice del bootloader. Una volta caricati i suoi moduli, può presentare il menu di GRUB e gestire il resto del processo di avvio. Se non riesce a trovare i moduli, presenta un prompt di salvataggio molto limitato.

Quindi, ciò che vedi è del tutto normale se hai ripartizionato, interrompendo così il riferimento che il bootloader aveva alla partizione contenente i moduli di avvio.

Dal momento che è possibile avviare manualmente, la soluzione più semplice è avviare e reinstallare manualmente il bootloader nell'MBR in modo che abbia il riferimento corretto alla partizione. Il modo per farlo è:

sudo grub-install /dev/sda

Ciò presuppone l'avvio da /dev/sda(la maggior parte dei casi, ma in caso contrario, sostituirlo con l'unità corretta).

Questa soluzione è molto più semplice rispetto all'utilizzo di boot-repair, ma se non si è sicuri, potrebbe essere più adatta.


1
+1 per spiegare cosa sta succedendo in termini di facile comprensione.
monotasker

2

Il modo più semplice sarebbe:

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

Poi:

sudo apt-get install grub-pc grub-pc-bin

2
Questo è un approccio a mazza che probabilmente funzionerà, ma è più semplice reinstallare il bootloader per aggiornare il riferimento alla partizione (che è stata interrotta da riparazioni).
bcbc,

1

Risolve l'ultimo caso di errore di salvataggio di grub: problemi: 1. i386-pc non trovato **** modalità normale non funzionante cp non funzionante search.file non funzionante . Tutto può essere risolto dai seguenti comandi, Funziona anche con Ubuntu 18.04. Passaggio 1: trova la cartella principale contenente la directory.

ls

Ad esempio, se la cartella principale è in (hd0, gpt4), quindi digitare

ecco come appare

ls (hd0, 4)/

Vedrai alcuni file o cartelle:

il mio file root è in (hd0, gpt4)

Ora, se sei fortunato, procedi come segue:

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

Se sei fortunato, risolverà il tuo problema. A volte le persone hanno problemi come impossibile trovare la cartella 1386-pc. In tal caso devi guardare dov'è la tua cartella grub. Se hai un problema come:

boot / grub / i386-pc / normal.mod non trovato

In questo caso, è necessario trovare la cartella grub2. Se hai grub2 e all'interno di quella cartella potresti avere la tua cartella i386-pc. Quindi è necessario digitare

prefix=(hd0, 4)/grub2/

Funzionerà. Se non si dispone di grub2 e non è possibile individuare la cartella i386-pc, procedere come segue:

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

dopo aver eseguito questo comando, la modalità di salvataggio di grub passerà al menu di grub . Ora puoi eseguire il 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

Ti porterà in modalità di recupero. Da lì puoi scegliere tra le diverse opzioni di recupero disponibili. Se non aiuta, è necessario scaricare un sistema operativo Ubuntu, ad esempio Ubuntu 18.04. È possibile scaricare dal seguente collegamento: collegamento Ubuntu

Crea un'unità di avvio e apri il tuo computer con quel disco attivo. Non danneggerà nessuno dei tuoi documenti. Guarda un video su come farlo. Ora devi trovare la tua cartella i386-pc. Sarà dentro

rootContainingDirectory-usr-lib-grub

Ora copia i386-pc nella cartella boot / grub /. potresti avere un problema di autorizzazione per superare quel tipo il seguente comando:

sudo nautilus

Ora fai clic destro su quella directory e cambia il proprietario in utente di sessione live di Ubuntu

segui il video: modifica dell'autorizzazione

Ora dopo averlo incollato nella cartella boot / grub, riavvia e rimuovi l'unità USB. Questa volta usa il primo set di comandi, funzionerà. Se il comando cp funziona, puoi farlo anche dal menu di grub.

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.