Grub ha una piccola immagine centrale che viene caricata all'avvio. L'immagine principale carica in modo dinamico i moduli che offrono ulteriori funzionalità. i386-pc/normal.mod not found
indica che grub non può caricare normal.mod , che è un modulo grub che fornisce il comando normale . Per caricare normal.mod devi dire a grub dove si trova. Per fare ciò è possibile utilizzare la riga di comando di grub (nota anche come Rescue Console). Grub avvierà la riga di comando in caso di problemi durante l'avvio, oppure è possibile avviarlo manualmente tenendo premuto il tasto Maiusc all'avvio di grub (per forzare la visualizzazione del menu di grub), quindi premendo il tasto 'c'.
Usando grub puoi esplorare le unità, le partizioni e i filesystem. Devi:
- individuare l'installazione di grub usando ls o search.file
- imposta le variabili grub $ prefix e $ root
- caricare ed eseguire il modulo normale
Esempio
Quello che segue è solo un esempio. Dovrai adattarlo all'unità locale e alla configurazione della partizione.
dov'è normal.mod? cerca in alcune località probabili
grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod
grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod
grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1
Se ottieni "Unknown command 'search.file'"
questo significa che il comando search.file non è disponibile. Questo probabilmente perché sei al grub rescue>
prompt e non al grub>
prompt. In questo caso è ancora possibile proseguire e utilizzare il ls
comando e la conoscenza del layout della partizione per trovare normal.mod
.
trovato a (hd0, msdos1)
grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod
perché grub non l'ha trovato?
check $ prefix - posizione assoluta della directory di grub
(questo è impostato quando grub è installato da grub-install)
grub> echo $prefix
(hd0,msdos2)/boot/grub
check $ root - dispositivo predefinito per percorsi che non includono un dispositivo
grub inizialmente lo imposta sul dispositivo da $ prefisso
grub> echo $root
hd0,msdos2
root e prefisso puntano alla partizione errata (hd0, msdos2)
impostare $ root e $ prefisso sulla partizione dove abbiamo trovato normal.mod (hd0, msdos1)
grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub
caricare ed eseguire il modulo normale
grub> insmod normal
grub> normal
Alcuni altri comandi che potrebbero essere utili
Elenca tutti i dispositivi e le partizioni
grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)
La sua partizione
grub> ls (hd0,msdos1)
Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib
ls filesystem (nota / alla fine)
grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/
guardare dentro / boot / grub
presenza della directory i386-pc significa che si tratta di una
presenza di installazione del BIOS della directory x86_64-efi che indica un'installazione EFI
grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg
use your windows partition as your primary boot device
. L'ultimo passo è essenziale. NON USARE / avviare. Potrebbe esserci un'altra soluzione: provare a cambiare manualmente il dispositivo di avvio durante l'avvio; tuttavia, non penso che funzionerà. Questo è un problema di vecchia data che è persistito in Ubuntu fino al 17.10 incluso. Grazie.