Come posso eseguire update-grub da un LiveCD?

48

Ok, quindi ho fatto qualcosa di stupido. Stavo cercando di ripulire le mie voci di Grub e ho rimosso per errore tutti i miei kernel Linux da Grub (sono ancora sul disco rigido). Quindi ora, ovviamente, Grub non mi dà modo di avviare in Ubuntu; Posso avviare Windows correttamente, ma Ubuntu non è nemmeno elencato.

Quindi voglio solo eseguire "sudo upgrade-grub" in qualche modo per ripristinare Ubuntu nell'elenco. Posso avviare da un LiveCD, ma una volta lì come faccio a eseguire quel comando? (A proposito, la mia installazione di Ubuntu è su sda5.)

    
posta Kelley 01.06.2012 - 22:31

5 risposte

0

Grazie per il grande aiuto! Tuttavia, alla fine non sembrava funzionare nulla, e dal momento che avevo una partizione separata / home, ero in grado di reinstallare Ubuntu senza perdere alcun dato. Devo ancora reinstallare i programmi e fare alcune configurazioni, ma a questo punto tutto sembra a posto.

    
risposta data Kelley 02.06.2012 - 01:27
63

Dato che dici che compare il tuo grub bootloader, ma il menu è vuoto, penso che non sia necessario reinstallare grub, ma piuttosto, come chiedi, esegui update-grub. Per ottenere ciò, è possibile utilizzare un Live CD, montare le partizioni pertinenti dal disco rigido, eseguire il chroot nella directory montata ed eseguire update-grub, che dovrebbe funzionare come se si stesse operando sul disco rigido effettivo.

Avvia con il tuo Live CD, selezionando "Prova Ubuntu senza installare".

Una volta avviato, apri un terminale (ctrl-alt-t) e monta la tua partizione Ubuntu su / mnt. Suppongo che la partizione di Ubuntu sia / dev / sda5, ma dovresti stabilirlo da solo. Fammi sapere se hai bisogno di aiuto per farlo:

sudo mount /dev/sda5 /mnt

Quindi montare alcune altre directory necessarie:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Inoltre, se hai una partizione di avvio Ubuntu separata (abbastanza rara in questi giorni, ma potrebbe essere il caso):

sudo mount /dev/sdaX /mnt/boot

Come puoi sapere se hai una partizione di avvio?

Una volta montata la partizione di Ubuntu, apri /mnt/etc/fstab . Se vedi una voce per /boot , nota quale dispositivo sta puntando ( /dev/sda4 forse?). Questo è quello che devi montare.

Una volta che questi sono montati, fai chroot per iniziare a usare la directory montata come partizione di root:

sudo chroot /mnt

Riceverai un prompt di #/ . La prima cosa da fare è confermare che stai utilizzando la corretta directory /boot . Vai a /boot/grub e guarda i file lì. Dovrebbero esserci molti file .mod e un file grub.cfg. Se la directory è vuota, non continuare, perché significa che NON è la tua directory boot effettiva. Guarda sopra per vedere come determinare se è necessario montare una directory boot aggiuntiva.

Una volta che hai confermato che /boot/ contiene i file corretti, significa che è la posizione corretta, digita:

sudo update-grub

Questo dovrebbe ricostruire il tuo file /boot/grub/grub.cfg con le voci del menu.

Quindi esci da chroot:

exit

A questo punto potresti voler controllare che le cose siano state correttamente aggiornate. Per questo, cd /mnt/boot/grub e controlla che i file di grub ci siano, ci dovrebbe essere un gruppo di file .mod e grub.cfg, quest'ultimo dovrebbe avere le voci per i tuoi kernel di Ubuntu. Se vedi solo grub.cfg e nessun file .mod, significa che NON si tratta della directory di avvio corretta, guarda sopra per come montare una partizione di avvio separata.

Smonta i filesystem:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

E poi riavvia, si spera che il tuo menu Grub venga ripristinato.

    
risposta data roadmr 01.06.2012 - 23:02
10

Avvio da un Live CD.

Premi Alt + Ctrl + T per aprire il terminale ed eseguire i seguenti comandi:

sudo mount /dev/sda5 /mnt

Installa il boot loader GRUB2:

sudo grub-install --root-directory=/mnt /dev/sda

Questo è /dev/sda - il disco rigido stesso, non la partizione di Ubuntu - /dev/sda5 .

Smonta la partizione di Ubuntu e riavvia il computer in questo modo:

sudo umount /dev/sda5 ; sudo reboot

Se hai installato più di un sistema operativo, rilevi i sistemi operativi in ​​questo modo:

sudo update-grub

Questo è tutto!

    
risposta data Basharat Sialvi 01.06.2012 - 22:48
1

La mia soluzione a questo problema era:

  1. scarica supergrub2disk da link
  2. mettilo sul pendrive link
  3. boot computer da pendrive con supergrub2disk su di esso
  4. accedi a Ubuntu
  5. scarica Boot-Repair per Ubuntu dal link

Forse non è la soluzione più veloce ma per me è stata la più semplice.

    
risposta data jmarceli 06.02.2014 - 15:55
0

Le istruzioni combinate di roadmr e Basharat Sialvi può essere trovato qui: link

Le istruzioni per il comando chainloader e multiboot di Grub2 si trovano all'indirizzo Wiki di aiuto per la community .

    
risposta data user293759 29.11.2015 - 18:37

Leggi altre domande sui tag