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
efibootmgr
Linux,bcdedit
Windows 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.cfg
in ElementaryOS gespeichert ist . (Eine andere Datei/boot/efi/EFI/ubuntu/grub.cfg
kann 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 bcdedit
Windows 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.cfg
tatsä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 bcdedit
in 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:
- Adam Williamsons Blogeintrag zur Funktionsweise von EFI - Diese Seite beschreibt die Theorie hinter dem Booten des EFI-Modus.
- Eine Frage und Antworten zu den Unterschieden zwischen dem Booten von BIOS und EFI auf Superuser.com : Dies liefert die Grundlagen des Vorangehenden, ist jedoch knapper.
- Meine Seite zu EFI-Bootloadern für Linux - Diese Seite beschreibt die Auswahlmöglichkeiten für EFI-Bootloader für Linux-Systeme. Es gibt zwei Unterseiten zum sicheren Start.
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 -v
Ausgabe untersuchen und ähnliche Probleme beheben, falls sie in der Zukunft auftreten sollten.