Come posso eseguire update-grub da un LiveCD?


62

Okay, quindi ho fatto qualcosa di stupido. Stavo cercando di ripulire le mie voci di Grub e ho rimosso accidentalmente tutti i miei kernel Linux da Grub (sono ancora sul disco rigido). Quindi ora, ovviamente, Grub non mi dà alcun modo di avviare Ubuntu; Riesco ad avviare Windows bene, 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 posso eseguire quel comando? (A proposito, la mia installazione di Ubuntu è su sda5.)


Funziona perfettamente ... è stato fatto solo 2 giorni fa- opensource-sidh.blogspot.in/2011/06/…
Nirmik

a questo thread voglio puntare a - che al comando 12.10 update-grub non funziona con grub <2.0 ?! - Io stesso lo scorso fine settimana ho fallito la mia installazione di 12.10 (pear OS 7.0.1) con grub-install e poi update-grub non funzionava - ho dovuto fare un salvataggio con supergrub-CD ...
dschinn1001

Risposte:


81

Poiché dici che appare il tuo bootloader grub, 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 determinarla tu stesso. Fammi sapere se hai bisogno di aiuto per fare questo:

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 insolita 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 Ubuntu, apri /mnt/etc/fstab. Se vedi una voce per /boot, nota a quale dispositivo sta puntando ( /dev/sda4forse?). Questo è quello che devi montare.

Una volta montati, esegui chroot per iniziare a utilizzare la directory montata come partizione root:

sudo chroot /mnt

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

Dopo aver verificato che /boot/contiene i file corretti, nel senso che si trova nella posizione corretta, digitare:

sudo update-grub

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

Quindi esci dal chroot:

exit

A questo punto potresti voler verificare che le cose siano state correttamente aggiornate. Per questo, cd /mnt/boot/grube controlla che i file di Grub siano lì, dovrebbero esserci un sacco di file .mod e grub.cfg, questi ultimi dovrebbero avere voci per i tuoi kernel Ubuntu. Se vedi solo grub.cfg e nessun file .mod, significa che questa NON è la directory di avvio corretta, cerca sopra 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.


Quando provo ad eseguire i tre comandi mount, ottengo "mount point / mnt / dev non esiste" o quello corrispondente per ciascuno.
Kelley,

la tua installazione di Ubuntu su / dev / sda5? In tal caso, dopo sudo mount /dev/sda5 /mntdovresti essere in grado di cd /mntvedere lì l'albero della tua installazione di Ubuntu. Dovrebbe avere dev, sys e proc. Altrimenti, forse stai montando la partizione sbagliata. Puoi controllare questo? Grazie!
Roadmr,

Ho riavviato il LiveCD e questa volta sembra funzionare. Devo aver digitato qualcosa di sbagliato la prima volta, anche se sono stato attento. Ad ogni modo, sto riavviando ora ... e no, non è cambiato nulla. Ancora nessuna scelta di Ubuntu nel menu Grub.
Kelley,

Quindi, per rispondere alla tua domanda, dopo aver eseguito "sudo mount / dev / sda5 / mnt" e poi "cd / mnt", vedo dev, sys e proc.
Kelley,

1
Signore, salvate la vita :) Grazie per questo. Ha funzionato come un fascino.
Il

14

Avvio da un Live CD.

Premi Alt+ Ctrl+ Tper 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

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

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

sudo umount / dev / sda5; riavvio sudo

Se hai più di un SO installato, rilevi i SO in questo modo:

sudo update-grub

Questo è tutto!


1
contrassegnato il mio per la cancellazione - nessun punto nella stessa cosa due volte
23 93 26 35 19 57 3 89

Grazie, ma non funziona. Reinstalla Grub, ma quando riavvio non è ancora stato aggiornato, quindi la mia installazione di Ubuntu non viene ancora visualizzata in Grub. In qualche modo ho bisogno di aggiornare Grub prima di riavviare, come dal LiveCD.
Kelley,

@Kelley Sei sicuro che l'installazione di Ubuntu sia su sda5? Puoi verificarlo eseguendo sudo fdisk -l. L'installazione di Ubuntu avrà un *after / dev / sdxx.
Basharat Sialvi,

Sì, è su sda5. Tuttavia, * è dopo sda2, che è la mia partizione di Windows (e l'ultima partizione in cui sono stato in grado di avviarlo, poiché è l'unica scelta nel mio menu Grub).
Kelley,

Chroot. Si prega di leggere altre risposte.
ish,

1

La mia soluzione a questo problema era:

  1. scarica supergrub2disk da http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. mettilo sul pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. avviare il computer da pendrive con supergrub2disk su di esso
  4. accedi al tuo Ubuntu
  5. ottenere Boot-Repair per Ubuntu da https://help.ubuntu.com/community/Boot-Repair

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


1

Questa soluzione è la stessa della risposta di Roadmr, tranne molto più semplice.

  1. Avvia in AntiX Live CD.
  2. Menu> Applicazioni> Strumenti di sistema> Ripristino avvio
  3. Seleziona 'Ripara file di configurazione di GRUB' (questa opzione esegue update-grub)
  4. Seleziona l' unità / partizione in cui risiede / boot
  5. Riavvia al termine.

Nel mio caso particolare, "Reinstalla GRUB Bootloader" è stato risolto per me. Ho una configurazione Windows / Linux a doppio avvio. Ho usato Macrium 7 per creare un clone di un'unità in un file. Quindi ripristinare quel file su una nuova unità. Dopo averlo ripristinato sulla nuova unità, si avviava su una schermata nera con un cursore lampeggiante in alto a sinistra .



-1

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


1
Sono contento di sapere che l'hai risolto in qualche modo, ma il chrooting avrebbe dovuto funzionare, e io considero la soluzione migliore.
Mahesh,

Sì. Non so perché non abbia funzionato, ma la risposta è stata fantastica (e l'ho votata). Ragazzi, avete fornito molto aiuto e forse le risposte aiuteranno qualcun altro a superare questo problema.
Kelley,
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.