GRUB verschwindet, nachdem die Beschreibung des Windows-Start-Managers geändert wurde

621
superchampionoftheworld

Ich habe Elementary OS installiert und alles hat gut funktioniert. Ich habe GRUB beim Booten des Computers bekommen, ich könnte Windows und Elementary OS booten. Das einzige Problem war, dass der Windows-Start-Manager zweimal im EFI-Startmenü angezeigt wurde. Einer von ihnen war GRUB und der andere war nur Windows. Ich hätte es wahrscheinlich einfach alleine lassen sollen, aber ich ging in Windows und tippte einbcdedit /set description GRUB Das hat alles ruiniert. Dadurch wurde der Windows Boot Manager-Eintrag in EFI (der geheimen GRUB) entfernt und derjenige, der nur Windows war, zurückgelassen. Jetzt komme ich nicht mehr in Linux rein. Bei den meisten Online-Tutorials geht es darum, GRUB nach der Installation von Windows zurückzubekommen, oder nicht für EFI. Aus diesem Grund möchte ich diesen Tutorials nur ungern folgen. Sie sagen, dass Sie Grub auf MBR erneut installieren sollten, obwohl ich es ursprünglich auf der EFI-Partition installiert habe. Das scheint mir nicht richtig zu sein.

EDIT: Ich habe mehr Informationen zum Problem. Ich habe GRUB erneut installiert, wobei ich eine gängige Methode im Internet gefunden habe. Ich habe dann verwendet efibootmgr, und es scheint, dass, wenn ich Windows Boot Manager zu GRUB umbenannt, der neue Eintrag wurde tatsächlich geschaffen. Es gibt auch einen Eintrag namens Ubuntu. Keiner dieser Einträge ist jedoch in der Startreihenfolge. Ich kann die Startreihenfolge jedoch nicht ändern, um sie hinzuzufügen. Der Befehl funktioniert, aber die Änderung wird nicht gespeichert.

0
Sie müssen wahrscheinlich Grub erneut installieren. Sie können LiveCD als Wiederherstellungsumgebung verwenden. Hängen Sie Ihre Root-Partition und relevante andere Dateisysteme (separate `/ boot`, efi-Partition,` / dev`, `/ sys` usw.) in Ihre Wiederherstellungsumgebung ein, dann` chroot` in Ihrem Linux-Root und installieren Sie grub erneut mit ` grub-install`. sebasth vor 6 Jahren 0
Das hat nicht funktioniert. superchampionoftheworld vor 6 Jahren 0

2 Antworten auf die Frage

4
Rod Smith

Ich sehe, du hast eine Lösung gefunden. Ich möchte jedoch zumindest einen Teil des Grundes für das Problem nennen, da dies Ihnen (oder anderen) helfen kann, ähnliche Probleme in der Zukunft zu vermeiden.

In der von Ihnen beschriebenen anfänglichen Dual-Boot-Konfiguration (Windows / ElementaryOS) haben Sie zwei Boot-Manager:

  • Der integrierte Boot-Manager des Motherboards (EFI) - Dieser Boot-Manager basiert auf Einträgen, die im NVRAM gespeichert sind und auf EFI-Boot-Programme verweisen. Die NVRAM-Einträge können über Programme wie efibootmgrLinux, bcdeditWindows und EasyUEFI in Windows hinzugefügt, gelöscht und anderweitig geändert werden . Normalerweise bootet ein Computer automatisch und ohne Pause mit dem Standard-EFI-Boot-Programm, um ein Menü beim Booten anzuzeigen. Um ein Menü aufzurufen, müssen Sie kurz nach dem Einschalten des Computers oder nach einem Neustart eine systemspezifische Taste drücken. Zu den allgemeinen Optionen für diese Taste gehören Esc, Enter und eine Funktionstaste (normalerweise F8 oder höher).
  • GRUB - Nach der Installation von ElementaryOS sollte GRUB das Standard-Startprogramm werden, das vom integrierten Boot-Manager der EFI angegeben wird. GRUB ist jedoch selbst ein Boot-Manager und sollte in einer Dual-Boot-Konfiguration ein Boot-Menü anzeigen, wenn es ausgeführt wird. Dieses Startmenü wird durch eine auf der Festplatte gespeicherte Konfigurationsdatei erstellt, die /boot/grub/grub.cfgin ElementaryOS gespeichert ist . (Eine andere Datei /boot/efi/EFI/ubuntu/grub.cfgkann ebenfalls beteiligt sein.)

(Hinweis: Ein Boot- Manager stellt einem Benutzer ein Menü oder eine andere Möglichkeit zur Auswahl des Betriebssystems zur Verfügung. Ein Boot-Manager wechselt normalerweise zu einem Bootloader , der einen OS-Kernel in den Arbeitsspeicher lädt und die Steuerung an den Kernel übergibt Programme, einschließlich GRUB, sind sowohl Bootmanager als auch Bootloader, aber andere, wie der EFI-Bootmanager oder der Linux-EFI-Stubloader, stellen den einen oder den anderen, aber nicht beide dar. Linux-Benutzer unterscheiden sich häufig zwischen diesen beiden Programmtypen weil GRUB beide Jobs erledigt.)

Wenn Sie unter bcdeditWindows ausgeführt haben, haben Sie auf jeden Fall den Bootmanager der EFI angepasst. Dies hatte jedoch keine Auswirkungen auf die GRUB-Konfiguration. So haben Sie GRUB umgangen, was natürlich nicht das war, was Sie beabsichtigt hatten. Um das GRUB-Menü zu ändern, müssen Sie die Konfigurationsdatei bearbeiten. Dies ist jedoch ein schwierigerer Vorgang, als Sie vielleicht erwarten, da er grub.cfgtatsächlich aus Skripts erstellt wird, sodass er für Ihr bestimmtes System angepasst werden kann. Das GRUB Customizer- Tool stellt ein relativ freundliches GUI-Frontend für die GRUB-Anpassung dar, aber ich bin kein Experte für seine Verwendung. Es ist auch möglich, andere Bootmanager und Bootloader unter Linux zu verwenden, wobei GRUB vollständig umgangen wird.

Ein anderes wahrscheinlich relevantes Problem ist Secure Boot. ElementaryOS basiert auf Ubuntu, das ein Programm namens Shim für Secure Boot Support verwendet. Das Shim-Binary ( shimx64.efi) ist von Microsoft signiert und wird daher von den meisten EFIs als vertrauenswürdig eingestuft. Shims Hauptzweck ist es, die Anzahl der von der Firmware akzeptierten Secure-Boot-Schlüssel zu erhöhen, und GRUB ( grubx64.efi) zu starten, das wiederum mit einem anderen Schlüssel signiert ist (Canonicals im Fall von Ubuntu und vermutlich auch deshalb ElementaryOS, obwohl ich ' habe das nicht überprüft)

In Anbetracht der Natur Ihrer Lösung vermute ich, dass Sie mindestens zwei Einträge für ElementaryOS im NVRAM-Startverzeichnis Ihres EFI hatten, von denen einer auf Shim und der andere auf GRUB verweist. Ich vermute, dass derjenige, der direkt auf GRUB verweist, früher in der Startreihenfolge vorlag, aber von der Firmware ignoriert wurde, da der unmodifizierte Secure-Boot-Test der Firmware fehlgeschlagen ist. Als Sie der Firmware jedoch gesagt haben, dass sie GRUB vertrauen sollte, bestand sie den Test und bestand damit aus GRUB. Es war vielleicht anfangs auf eine andere Weise eingerichtet worden, aber Ihr Fehler bcdeditin Windows hat die Reihenfolge des Eintrags, der über Shim gestartet wurde, ausgelöscht oder geändert. Ihre Neuinstallation von GRUB hat wahrscheinlich auch ein bisschen mit den Dingen zu tun.

Wenn Sie dies noch besser verstehen möchten, empfehle ich Ihnen, eine oder mehrere der folgenden Informationen zu lesen:

Sogar die Gesamtsumme dieser Seiten kann Ihnen nicht genau sagen, was auf Ihrem System passiert ist, aber Sie können es möglicherweise besser diagnostizieren, indem Sie Ihre sudo efibootmgr -vAusgabe untersuchen und ähnliche Probleme beheben, falls sie in der Zukunft auftreten sollten.

Wow, das sind viele Informationen. Vielen Dank. Ich habe efibootmgr -v gemacht, und du hast recht, es gibt 3 Einträge für Elementary OS, zwei mit Shim und einer mit grub. Ich habe auch den Windows-Eintrag gefunden, den ich GRUB genannt habe. superchampionoftheworld vor 6 Jahren 0
1
superchampionoftheworld

Ich habe die Lösung alleine gefunden. Anscheinend musste ich in den UEFI-Einstellungen grubx64.efi als vertrauenswürdig markieren. Das ist wirklich seltsam, da ich die ganze Zeit über Secure Boot off abgespielt habe. Auf jeden Fall wurde ein neuer Eintrag für den EFI-Bootloader hinzugefügt, und dieser Eintrag lädt GRUB wie gewünscht.