Wie behebe ich die UUID in Grub nach der Wiederherstellung von einem anderen Computer?

22

Ich möchte eine vollständige Tar-Sicherung von Ubuntu 12.04 mit all meinen Anpassungen, Dokumenten, installierter Software usw. auf einem anderen Computer wiederherstellen.

Ich habe die Sicherung mit den folgenden Befehlen durchgeführt:

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

Auf dem neuen Computer habe ich eine Neuinstallation von Ubuntu 12.04 durchgeführt, die Sicherungsdatei dorthin verschoben und dann mit der Sicherungsdatei wie folgt wiederhergestellt:

tar xvpfz backup.tgz -C /

Wie erwartet (siehe Mike Whatever's Antwort auf diese Frage: Kopieren Sie Ubuntu Distribution mit allen Einstellungen von einem Computer auf einen anderen ), brach diese Angelegenheit ab. Wenn ich den Computer einschalte, erhalte ich eine Fehlermeldung:

error: no such device: ...

press any key to continue ...

Ich glaube, der Grund, warum Grub kaputt ist, ist, dass die UUID, nach der gesucht wird, auf der alten Festplatte und nicht auf der Festplatte des Computers übereinstimmt.

Wie kann ich meinen Fehler beheben, um die neue Festplatte zu erkennen? Ich suchte online nach Hilfe "Fix GRUB UUID", aber die Schritte schienen entweder veraltet oder komplex. Die Antwort von Mike, die ich oben verlinkt habe, gibt mir Hoffnung, dass es einen ziemlich einfachen Weg gibt, dies zu reparieren.

Schneemann
quelle
1
Warum verwenden Sie nicht clonezilla (clonezilla.org), um einen Schnappschuss Ihres alten Computers zu erstellen und ihn auf dem neuen wiederherzustellen? Ich denke, es wäre wirklich einfacher, weil Sie scheinbar alles so lassen wollen, wie es ist. Andernfalls ist das Erstellen einer Sicherungskopie (/ home, / etc, / usr / local, / var) und das Wiederherstellen Ihrer Daten und Anpassungen mit Ausnahme von Software sehr einfach. Um Ihr aktuelles Problem zu lösen, müssen Sie die UUID ändern (s) in /etc/fstab und /boot/grub/menu.lst. Sie können die Ubuntu-Installations-CD verwenden, um die UUID (s) [gparted oder Befehlszeile] abzurufen und die Änderungen vorzunehmen.
Golboth

Antworten:

19

Um Ihr aktuelles Problem zu lösen, müssen Sie die UUID (s) in "/ etc / fstab" und "/boot/grub/grub.cfg" (sehr schwierig) ändern.

Sie können Ubuntu-Installations-CD verwenden, um die UUID (s) mit gparted zu erhalten (Sie müssen nur mit der rechten Maustaste auf die Partition klicken, für die Sie die UUID erhalten möchten, und auf "Information" klicken, dann UUID auswählen und mit STRG + kopieren C) oder Befehlszeile ( sudo blkid).

Dann müssen Sie "/ etc / fstab" auf dem richtigen Volume mit gedit, nano oder anderen bearbeiten.

Geben Sie in einem Terminal Folgendes ein:

gksudo gedit /etc/fstab

und ersetzen Sie die alten UUIDs durch die neuen.

WICHTIG: Wenn Sie dazu eine Boot-CD verwenden, müssen Sie natürlich "/ media / xxxxx" vor "/ etc / fstab" hinzufügen: "/ media / xxxxx / etc / fstab". Sie können gksudo geditdie Datei auch verwenden und öffnen, um sich selbst zu bearbeiten.

WARNUNG: Das Ändern von "/boot/grub/grub.cfg" ist sehr schwierig. Es sollte normalerweise mit dem Befehl generiert werden sudo update-grub.

Ersetzen Sie die alten UUIDs durch die neuen in "/boot/grub/grub.cfg", indem Sie Folgendes in ein Terminal eingeben:

gksudo gedit /boot/grub/grub.cfg

WICHTIG: Wenn Sie dazu eine Boot-CD verwenden, müssen Sie "/ media / xxxxx" vor "/boot/grub/grub.cfg": "/ media / xxxxx / boot / grub / grub" hinzufügen. cfg ". Sie können gksudo geditdie Datei auch verwenden und öffnen, um sich selbst zu bearbeiten.

Wenn Sie die knifflige Lösung verwenden, sollten Sie sie nach dem sudo update-gruberfolgreichen Systemstart starten .

Ein sauberer, aber einfacher Weg, um grub richtig zu konfigurieren, ist die Verwendung einer Boot-Reparaturdiskette wie "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

Ich hoffe, dass dies Ihnen helfen wird, Ihr Problem zu lösen.

Sie könnten jedoch erwägen, Clonezilla zu verwenden, um den alten Computer auf den neuen zu replizieren, wie in meinem Kommentar angegeben.

Golboth
quelle
Vielen Dank Golboth. Schließlich habe ich Ihren Vorschlag zur Verwendung der Boot-Reparaturdiskette befolgt, und das hat funktioniert.
Snowguy
Bitte beachten Sie, dass Clonezilla dies möglicherweise nicht behebt. Ich habe gerade meine gesamte Festplatte (über Clonezilla) auf eine SSD kopiert und hatte genau die gleiche UUID für Festplatte und SSD. Am Ende habe ich die UUID manuell auf der SSD und dann in den oben genannten Dateien auf der SSD geändert, um immer noch die Fallback-Festplatte zu haben Mögliches Boot-Betriebssystem
Dennis Nolte
3

Vermutlich bedeutet dies, dass grub startet und eine Option zum Booten von Ubuntu anzeigt, aber wenn Sie auswählen, dass es nicht bootet?

Ich denke, es gibt zwei Möglichkeiten:

  1. Verwenden Sie den GRUB-Zeileneditor, um die Linux-Startoption so zu ändern, dass Linux korrekt geladen wird (und führen Sie dann grub-install als root aus, um die richtige Konfiguration dauerhaft festzulegen).
  2. Booten Sie von einem Ubuntu-USB-Stick, hängen Sie die Ubuntu-Festplattenpartition ein, chrooten Sie hinein und führen Sie dann grub-install aus.

Der erste Fall sollte einfacher sein, wenn Sie nur Ubuntu und nur eine einzige Festplatte haben. Wählen Sie in diesem Fall die Option "Ubuntu-Wiederherstellung" und drücken Sie "e", um Folgendes zu bearbeiten:

Der Eintrag sollte ungefähr so ​​aussehen:

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

Entfernen Sie die Zeile "search" und ersetzen Sie "root = UUID = XXXXX" in der Zeile "linux" durch "root = / dev / sda1". Versuchen Sie dies und booten Sie es, und hoffentlich erhalten Sie nach kurzer Zeit das Ubuntu-Wiederherstellungsmenü, das eine Grub-Option haben sollte, die Grub ordnungsgemäß neu installieren sollte.

Andernfalls oder wenn Sie lieber nicht direkt mit Grub herumspielen möchten (der eine Gesundheitswarnung enthalten sollte, verwenden Sie einen CD / USB-Stick, wie in https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2 dokumentiert

Chronitis
quelle
Zu Ihrer Information, als ich anfing, sah ich die Grub-Startoption nicht (vielleicht, weil es nur direkt in Ubuntu bootet, da es das einzige Betriebssystem war). Auf jeden Fall danke ich Ihnen für Ihre Hilfe. Am Ende habe ich eine Boot-Reparaturdiskette erstellt.
Snowguy
Vielen Dank! Ihre Antwort hat mich vor einem schlechten Ende bewahrt, als ich die UUID meiner fstab törichterweise änderte und Ubuntu nicht mehr starten konnte!
Reexmonkey
0

In meinem Fall unterschied sich die von Grub installierte UUID von meiner aktuellen UUID ( sudo blkid) für meine Windows-Partition (bestätigt in grub.cfg). Ich habe verschiedene Methoden erfolglos ausprobiert. Schließlich habe ich die Windows-Partition mit dem Dateimanager gemountet und update-gruberneut ausgeführt und die UUID wurde erfolgreich in grub.cfg aktualisiert.

Tavo
quelle
Das Programm wird aufgerufen update-grubund nicht grub-update. Dies ist nicht ganz offensichtlich, da die meisten Grub-Befehle mit beginnen grub-....
Fa11enAngel
0

Was ich getan habe, anstatt fstab und grub zu bearbeiten:

  1. Ich habe diese Dateien bei der Neuinstallation von ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg) gesichert.
  2. Aus dem Backup wiederhergestellt ( tar -xvpf /mnt/remotebk/full.tar)
  3. kopiere wiederhergestellte fstab Datei ( cp /etc/fstab /somedir/fstab.restored)
  4. stelle meine frisch installierten Bootdateien wieder her ( tar -xvpf /somedir/boot.tar -C /)
  5. Neustart und es hat funktioniert.

Ich verwende virtuelle VMware-Maschinen. Ich habe diesen Prozess ausgeführt, um einen Linux-Server von einem Host auf einen anderen zu verschieben.

Roberto Dimas
quelle