Vor kurzem hatte ich einige fehlerhafte Sektoren auf meiner Festplatte. Erst vor ein paar Tagen gab es eine Datenbeschädigung. Es scheint also, dass meine Festplatte das Ende ihrer Lebensdauer erreicht hat.
Eine Möglichkeit war also, eine neue Festplatte zu kaufen, aber ich werde den Laptop in den nächsten 5-6 Monaten ersetzen, also wollte ich keine zusätzlichen Kosten verursachen. Also habe ich Ubuntu auf einer externen Festplatte installiert. Als ich es installiert habe, hat das externe Ubuntu die EFI-Partition der internen Festplatte geändert. Jetzt muss ich die externe Festplatte anschließen, um zu booten.
Ich möchte beide EFI-Partitionen trennen. Ich möchte eine EFI-Partition, die die interne Festplatte von Ubuntu ohne externes Laufwerk öffnen kann, und ich möchte auch extern booten, wenn das interne Laufwerk ausfällt. Ich möchte also zwei verschiedene EFIs, eine auf der internen und eine auf der externen.
Ich habe versucht, update-grub von einem internen Ubuntu aus auszuführen. Es hat mir gezeigt, dass es Windows von einem internen sowie Ubuntu von einem externen erkennen kann. Aber es ändert die EFI-Partition nicht. Außerdem: Wie konfiguriere ich eine separate EFI-Partition für das externe Laufwerk? Ich habe bereits eine 200 MB große EFI-FAT32-Partition auf einem externen Laufwerk erstellt. Ich habe das gesamte EFI von einem internen auf ein externes Laufwerk kopiert. Ich habe getestet, ob es von dem benutzerdefinierten Eintrag, den ich im BIOS erstellt habe, bootet oder nicht. Jetzt möchte ich wissen, wie ich ein internes Grub von der internen Festplatte booten kann und welche Änderungen ich außer dem EFI-Pfad in /etc/default/grub extern vornehmen muss, damit alles funktioniert.
Antwort1
Launchpad-Fehler Nr. 1396379 (Während der Installation wird die Benutzereingabe für den Speicherort des Bootloaders ignoriert und das erste gefundene EFI verwendet) ist die Ursache für diese Art von Problemen. Fügen Sie sich selbst in die Rubrik „Betrifft mich das?“ des Fehlers ein, wenn Sie jemals auf einer zweiten Festplatte installieren. Außerhalb des Installationsprogramms funktioniert Grub einwandfrei und kann mit den entsprechenden Optionen verwendet werden, um anzugeben, wo Sie es installieren.
Das Ergebnis der Installation auf einer zweiten Festplatte ist, dass das EFI der ersten Festplatte aktualisiert wird und Grub immer noch bootet, aber jetzt befinden sich die zusätzlichen Dateien von Grub auf der zweiten Festplatte. Dies funktioniert, solange die zweite Festplatte angeschlossen ist. Ohne die angeschlossene zweite Festplatte kann Grub die Dateien, die es zum weiteren Booten benötigt, nicht finden. Durch Kopieren der EFI-Datei der ersten Festplatte in das EFI der zweiten Festplatte wird ein funktionierender Bootvorgang für die zweite Festplatte ermöglicht. Wählen/legen Sie die Festplatte als erste in der Bootreihenfolge zum Booten ein.
Die Lösung für das erste EFI besteht darin, die Datei EFI/ubuntu/grub.cfg (nur ein paar Zeilen) zu bearbeiten, um die Festplatten-/Partitionsverweise wieder auf die erste Festplatte zu ändern und die UUID (bereitgestellt durch Ausführen von sudo blkid in einem Terminal) für Ubuntu auf der ersten Festplatte zu verwenden. Diese Änderung ermöglicht es Grub, von der ersten Festplatte zu booten. Die einzige andere Änderung, die Sie (möglicherweise) benötigen, besteht darin, den Windows-Bootloader auf den Standard für das Gerät zurückzusetzen. Die Datei /EFI/Boot/bootx64.efi war ursprünglich der Windows-Bootloader, wurde aber wahrscheinlich in /EFI/Boot/bckbootx64.efi (oder vielleicht bootx64.efi.bup) umbenannt. Überprüfen Sie die Größe des Windows-Bootloaders in /EFI/Microsoft/Boot/bootmgfw.efi, um sicherzustellen, dass bckbootloader.efi wirklich der Windows-Bootloader ist. Kopieren Sie es dann einfach (oder /EFI/Microsoft/Boot/bootmgfw.efi) zurück nach /EFI/Boot/bootx64.efi. Setzen Sie das Gerät oder /EFI/Microsoft/Boot/bootmgfw.efi an zweiter Stelle in der Startreihenfolge, sodass der zweite Eintrag gestartet wird, wenn die zweite Festplatte nicht angeschlossen ist.