Come riparare l'UUID in Grub dopo il ripristino da un altro computer?


22

Voglio ripristinare un backup completo tar di Ubuntu 12.04 con tutte le mie personalizzazioni, documenti, software installato, ecc. Su una macchina diversa.

Ho effettuato il backup con i seguenti comandi:

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

Sul nuovo computer ho fatto una nuova installazione di Ubuntu 12.04, ho spostato il file di backup su di esso e poi ripristinato con il file di backup con il seguente:

tar xvpfz backup.tgz -C /

Come previsto (vedi la risposta di Mike Qualunque sia la domanda: copia la distribuzione Ubuntu con tutte le impostazioni da un computer a un altro ) questo ha rotto grub. Quando accendo il computer viene visualizzato un errore:

error: no such device: ...

press any key to continue ...

Credo che la ragione per cui Grub è rotto è che l'UUID sta cercando corrispondenze sul vecchio disco rigido non sul disco rigido per il computer.

Come posso risolvere il mio grub per riconoscere il nuovo disco rigido? Ho cercato online l'aiuto "Fix GRUB UUID" ma i passaggi sembravano obsoleti o complessi. La risposta di Mike di cui ho parlato sopra mi fa sperare che ci sia un modo abbastanza semplice per ripararlo.


1
Perché non usi clonezilla (clonezilla.org) per creare un'istantanea del tuo vecchio computer e ripristinarlo su quello nuovo? Penso che sarebbe davvero più facile perché sembra che tu voglia mantenere assolutamente tutto così com'è. Altrimenti, fare un backup (/ home, / etc, / usr / local, / var) e ripristinare i dati e le personalizzazioni, ad eccezione dei software, è davvero facile ... Per risolvere il problema attuale, dovrai cambiare l'UUID (s) in / etc / fstab e /boot/grub/menu.lst. È possibile utilizzare il CD di installazione di Ubuntu per ottenere l'UUID (s) [gparted o riga di comando] e apportare le modifiche.
Golboth,

Risposte:


19

Per risolvere il tuo attuale problema, dovrai cambiare gli UUID in "/ etc / fstab" e "/boot/grub/grub.cfg" (molto complicato).

Puoi usare il CD di installazione di Ubuntu per ottenere l'UUID (s) con gparted (devi solo fare clic con il tasto destro sulla partizione per la quale vuoi ottenere l'UUID e fare clic su "Informazioni", quindi selezionare UUID e copiarlo con CTRL + C) o riga di comando ( sudo blkid).

Quindi devi modificare "/ etc / fstab" sul volume giusto con gedit, nano o altro.

In un terminale, digitare:

gksudo gedit /etc/fstab

e sostituisci i vecchi UUID con quelli nuovi.

IMPORTANTE: ovviamente, se si utilizza un CD di avvio per farlo, è necessario aggiungere "/ media / xxxxx" prima di "/ etc / fstab": "/ media / xxxxx / etc / fstab". Puoi anche usare gksudo gedite aprire il file per modificarti.

ATTENZIONE: Modificare "/boot/grub/grub.cfg" è molto complicato. Normalmente dovrebbe essere generato con il comando sudo update-grub.

Sostituisci i vecchi UUID con quelli nuovi in ​​"/boot/grub/grub.cfg" inserendo quanto segue in un terminale:

gksudo gedit /boot/grub/grub.cfg

IMPORTANTE: ovviamente, se si utilizza un CD di avvio per farlo, è necessario aggiungere "/ media / xxxxx" prima di "/boot/grub/grub.cfg": "/ media / xxxxx / boot / grub / grub. CFG". Puoi anche usare gksudo gedite aprire il file per modificarti.

Se usi la soluzione complicata, ti consiglio di avviarlo sudo update-grubdopo aver avviato correttamente il sistema.

Un modo più pulito ma semplice per riconfigurare correttamente grub potrebbe essere quello di utilizzare un disco di ripristino di avvio come "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

Spero che questo ti aiuti a risolvere il tuo problema.

Tuttavia potresti prendere in considerazione l'utilizzo di Clonezilla per replicare il vecchio computer su quello nuovo come indicato nel mio commento.


Grazie Golboth. Ho finito con il tuo suggerimento di utilizzare il disco di ripristino di avvio e ha funzionato.
snowguy

si prega di notare che clonezilla potrebbe non risolverlo. ho appena copiato tutto il mio hdd (tramite clonezilla) su un SSD e ho avuto lo stesso UUID esatto per hdd e SSD, ho finito per cambiare manualmente l'UUID su SSD e quindi nei file sopra menzionati su SSD per avere ancora il fallback HDD come possibile avvio del sistema operativo
Dennis Nolte il

3

Presumibilmente questo significa che grub si avvia e visualizza un'opzione per l'avvio su Ubuntu ma quando si seleziona che non si avvia?

Ci sono due opzioni, penso:

  1. Utilizzare l'editor di linee GRUB per modificare l'opzione di avvio di Linux per caricare correttamente Linux (e quindi eseguire grub-install come root per impostare in modo permanente la configurazione corretta).
  2. Avvia da una chiavetta USB Ubuntu, monta la partizione del disco Ubuntu, chroot in essa e quindi esegui grub-install.

Il primo caso dovrebbe essere più semplice se hai solo Ubuntu e hai solo un singolo disco rigido, nel qual caso seleziona l'opzione "Ripristino Ubuntu" e premi "e" per modificare:

La voce dovrebbe assomigliare a:

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

Rimuovere la riga "cerca" e sostituire "root = UUID = XXXXX" nella riga "linux" con "root = / dev / sda1". Prova ad avviarlo e, auspicabilmente, dopo poco tempo ti darà il menu di ripristino di Ubuntu, che dovrebbe avere un'opzione grub, che dovrebbe reinstallare correttamente grub.

Altrimenti, o se preferisci non scherzare direttamente con grub (che dovrebbe contenere un avviso di salute, usa una chiavetta CD / USB come documentato in https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2


Cordiali saluti, quando ho iniziato non ho visto l'opzione di avvio di grub (forse perché si avviava direttamente su Ubuntu poiché era l'unico sistema operativo). In ogni caso apprezzo il tuo aiuto. Ho finito per creare un disco di ripristino di avvio.
snowguy,

Molte grazie! La tua risposta mi ha salvato da una brutta fine, quando ho cambiato follemente l'UUID del mio fstab e Ubuntu non poteva più iniziare!
riesegui il

0

Nel mio caso, l'UUID installato da grub era diverso dal mio attuale UUID ( sudo blkid) per la mia partizione di Windows (confermato in grub.cfg). Ho provato vari metodi senza successo. Alla fine ho montato la partizione di Windows con il file manager ed eseguito di update-grubnuovo e l'UUID è stato aggiornato con successo in grub.cfg.


Il programma si chiama update-grube non grub-update. Questo non è abbastanza ovvio poiché inizia con la maggior parte dei comandi di grub grub-....
Fa11enAngel,

0

Cosa ho fatto invece di modificare fstab e grub:

  1. Ho eseguito il backup di quei file sulla nuova installazione di Ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Ripristinato da backup ( tar -xvpf /mnt/remotebk/full.tar)
  3. copia il file fstab ripristinato ( cp /etc/fstab /somedir/fstab.restored)
  4. ripristinare i miei file di avvio di installazione freschi ( tar -xvpf /somedir/boot.tar -C /)
  5. Riavviato e ha funzionato.

Sto usando macchine virtuali VMware, ho fatto questo processo per spostare un server Linux da un host a un altro host.

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.