it-swarm.com.de

Wie kann ich UEFI-BIOS dazu bringen, GRUB und nicht Windows zu starten?

Der TL; DR, hinzugefügt in der Bearbeitung:

Die Frage ist:

Wie kann ich festlegen, dass das BIOS GRUB gegenüber dem Windows-Start-Manager auf derselben UEFI-Startpartition bevorzugt?

Das Problem liegt nicht bei Grub; Grub macht das Richtige, wenn das BIOS es startet. Das Problem liegt nicht bei "Die Festplatte ist nicht bootfähig", da sowohl der Windows UEFI-Bootstrap als auch der Grub UEFI-Bootstrap bootfähig sind. Das Problem ist, von welchem ​​UEFI-Bootstrap das BIOS bootet.

Ich richte einen neuen Computer ein und möchte, dass dieser standardmäßig in Ubuntu bootet, habe aber die Option, Windows beim Booten auszuwählen. Dies ist besonders wichtig, wenn die Stromversorgung ausfällt und wieder hergestellt wird. Ich werde nicht einmal im Haus sein.

Ich begann mit der Installation von Ubuntu 17.04 auf meiner internen NVMe-Festplatte, die mit GPT partitioniert wurde, um die Hälfte der Festplatte zu verwenden, und einer separaten UEFI-Bootpartition. GRUB bootet das in Ordnung, und ich sehe das Startmenü GRUB beim Start, in dem ich auswählen kann, über welche Elemente GRUB Bescheid weiß.

Dann habe ich Windows 10 Pro von einem kürzlich heruntergeladenen ISO installiert. Es installierte Windows Boot Manager auf derselben UEFI-Partition und ließ Ubuntu intakt (großartig!) Und das bootet gut in Windows 10.

Es hat jedoch "etwas" bewirkt, dass die UEFI-Firmware beim Einschalten sofort den Windows-Start-Manager anstelle von GRUB auswählt. Die einzige Möglichkeit, Linux jetzt zu booten, ist die Verwendung des BIOS-Boot-Managers (F11 in meinem BIOS) und die manuelle Auswahl des Bootloaders GRUB. Das UEFI-BIOS weiß, dass auf der UEFI-Partition mehrere bootfähige Installationen vorhanden sind, da ich im Boot-Manager zwischen diesen wählen kann. Wenn ich mich jedoch im Setup-Menü des UEFI-BIOS befinde, kann ich in der Auswahl der Startpriorität nur "UEFI boot my internal drive" (UEFI bootet mein internes Laufwerk) auswählen. Ich kann nicht auswählen, welcher bestimmte Bootloader auf dieser Partition verwendet werden soll . Standardmäßig wird Windows und nicht GRUB ausgewählt.

Das Internet (und diese Site) schlagen vor, dass die alte Methode, dies zu beheben, darin besteht, update-grub auszuführen (damit GRUB Windows erkennt) und dann grub-install (um GRUB wieder auf das Gerät zu setzen). Ich habe dies getan, aber leider hat es immer noch das oben beschriebene Verhalten, bei dem das BIOS standardmäßig den Windows-Boot-Manager auswählt. (update-grub findet die Windows-Boot-Manager-Installation und fügt sie dem Menü hinzu. Dieses Menüelement funktioniert, wenn ich die Partition GRUB im UEFI-Boot-Manager manuell auswähle.)

Was kann ich tun, um GRUB zum "Standard" -Start auf meiner UEFI-Startpartition zu machen?

Verwendung eines MSI X399 Carbon Motherboards.

Zweite Bearbeitung: Da die richtige Antwort in einem Kommentar zu einer Antwort erwähnt wird, wiederhole ich sie hier:

"BCDEDIT" in an admin Shell on Windows is the working solution. The others don't work.
12
Jon Watte

Es gibt verschiedene Möglichkeiten, dies zu tun, darunter:

  • Das EFI-Setup-Dienstprogramm - Die meisten EFIs bieten Setup-Dienstprogramme, auf die Sie zugreifen können, indem Sie beim Start eine spezielle Taste drücken (normalerweise Esc, Entf oder eine Funktionstaste; welche Taste es ist, hängt jedoch von einem System ab zum anderen). Diese bieten häufig, aber nicht immer, eine Möglichkeit, die Startreihenfolge anzupassen. Wenn Ihre Firmware eine solche Option bietet, sollten Sie sie verwenden können, um GRUB an die oberste Position zu verschieben. (GRUB heißt wahrscheinlich ubuntu, vorausgesetzt, Sie haben es von dieser Distribution installiert.)
  • Eine EFI-Shell - Sie können den Befehl bcfg in einer EFI-Shell der Version 2 verwenden, wie im Arch Linux-Wiki beschrieben. Wenn Ihr System nicht bereits über eine leicht zugängliche Shell verfügt, ist dieser Ansatz wahrscheinlich schwieriger zu verwenden als die anderen, aber er ist betriebssystemunabhängig.
  • EasyUEFI - Das Windows EasyUEFI - Programm eines Drittanbieters ist wahrscheinlich der einfachste Weg, das zu tun, was Sie wollen. Sie können auf den Eintrag ubuntu in der Liste von EasyUEFI klicken und ihn nach oben verschieben.
  • bcdedit- Der Windows-Befehl bcdedit kann die NVRAM-basierte Startreihenfolge ändern. Insbesondere das Öffnen eines Administrator Eingabeaufforderungsfensters und die Eingabe von bcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi (optional gefolgt von bcdedit /set "{bootmgr}" description "ubuntu", um die Beschreibung sinnvoll zu halten) sollten den Trick tun.
  • efibootmgr- Dieses Linux-Tool kann die Startreihenfolge anpassen. Beginnen Sie, indem Sie nur Sudo efibootmgr eingeben, um die Optionen anzuzeigen. Notieren Sie sich die Nummer (Boot####), die dem Eintrag ubuntu zugeordnet ist, und die aktuelle Startreihenfolge (in der Zeile BootOrder). Sie können dann eine neue Startreihenfolge mit dem Eintrag ubuntu oben eingeben, indem Sie die Option -o verwenden. Wenn beispielsweise die aktuelle Startreihenfolge 0000,0003,0007,0004 und ubuntu 0007 ist, geben Sie Sudo efibootmgr -o 0007,0000,0003,0004 ein, um die Startreihenfolge anzupassen.
  • refind-mkdefault- Dieses Skript wird mit rEFInd geliefert und bietet eine Möglichkeit, den vorherigen Vorgang zu automatisieren. Wenn Sie rEFInd nicht verwenden, müssen Sie das Skript hier herunterladen und es ausführbar machen (chmod a+x refind-mkdefault). Sie würden es dann als Sudo ./refind-mkdefault -L ubuntu oder Sudo ./refind-mkdefault -L shimx64 ausführen, um GRUB zum Standard-Starteintrag zu machen.

Bei diesen Optionen können Probleme und Komplikationen auftreten. Der wahrscheinlichste Komplikationsfaktor ist, wenn es alte oder alternative ubuntu Starteinträge gibt. Es ist wichtig, dass Sie die richtige Position in der Startreihenfolge an die oberste Position verschieben. Wenn Sie die falsche Einstellung wählen, werden Sie entweder keine Verhaltensänderungen oder einen nicht funktionsfähigen Startvorgang feststellen, der den Startvorgang erschwert. Wenn Sie efibootmgr verwenden, können Sie anhand der Zeile BootCurrent feststellen, welche Option Sie als Standard festlegen sollten.

Es gibt andere Möglichkeiten, dies zu tun, die übertrieben sind. Die Neuinstallation von GRUB (über Boot Repair oder grub-install) sollte zum Beispiel den Trick machen. Diese Ansätze bergen jedoch das Risiko, eine bekanntermaßen funktionierende GRUB Konfiguration zu beschädigen.

Beachten Sie auch, dass einige EFIs fehlerhaft sind und es andere Probleme gibt, die es schwierig machen können, GRUB zuverlässig zum Booten zu bringen. Sie können diese Fragen und Antworten auf AskUbuntu prüfen, wenn Sie auf solche Probleme stoßen:

12
Rod Smith

Ich habe genau dieses Problem in den letzten Wochen gehabt. Ich habe es mit diesen Optionen herausgefunden. Bevor Sie eines dieser Dinge tun, empfehle ich Ihnen, in Ihr BIOS/UEFI zu gehen und die Startreihenfolge zu überprüfen und sicherzustellen, dass grub zuerst installiert wird.

So wie ich es sehe, hast du zwei Möglichkeiten.

Option 1

Ich würde Ihnen empfehlen, zuerst Windows 10 zu installieren. Dann Ubuntu installieren. Aber ich weiß, dass es ein bisschen tabu ist, einfach "Installiere deine Software" zu sagen, also biete ich auch eine Alternative an.

Option 2

Mit Ihrem aktuellen Setup würde ich Ihnen empfehlen, von einer Live Ubuntu-CD/einem Flash-Laufwerk zu booten und boot-repair zu installieren und auszuführen. Klicken Sie auf die Option "Empfohlene Reparatur" und befolgen Sie die Anweisungen. Lesen Sie diese sorgfältig durch und lesen Sie alle Befehle, bevor Sie sie ausführen. Dies überschreibt die aktuelle Grub-Installation mit einer neuen, die sie hoffentlich reparieren sollte.

1
taterbotz

Ich sehe mehrere Lösungen:

  1. Bearbeiten Sie Ihre UEFI, um die Standardeinstellungen anzupassen. Unter Linux können Sie efibootmgr verwenden. Unter Windows bin ich mir nicht sicher, aber ich denke, Sie können eine Wiederherstellungsoption starten, mit der Sie die UEFI konfigurieren können. Oder Sie möchten vielleicht lieber etwas wie rEFInd installieren.
  2. Ändern Sie den Ordnernamen auf der EFI-Partition. Ich denke, es bevorzugt einen Ordner namens boot oder greift darauf zurück.
  3. Verwenden Sie einfach den Windows-Bootloader. Ich denke, er kann zum Booten anderer Betriebssysteme konfiguriert werden.
1
jiggunjer

Ich hatte gerade meine Hauptplatine in meinem Laptop ersetzt und Grub verschwand vollständig.

Ich weiß, dass dies als behoben markiert ist, aber ich dachte, dass es für Sie nützlich sein könnte.

Damit wird Grub als Bootoption angezeigt. Ich musste dem BIOS ein EFI hinzufügen.

Ich bin in meinem BIOS zur Option "Startliste" gegangen. Klicken Sie auf "Add Boot Option" (Ich bin mir bewusst, dass dies BIOS-spezifisch ist). Dies gab mir eine Option für den Dateinamen, der in meinem Fall \EFI\ubuntu\grubx64.efi war, und gab ihm einen Namen grub

Ich habe dann den Eintrag grub an den Anfang der Startsequenz verschoben und jetzt wird er als Standardeintrag angezeigt.

Das heißt Ich sage nur, dass Sie möglicherweise nur die richtige EFI-Datei suchen und an den Anfang Ihrer Startreihenfolge/-reihenfolge verschieben müssen.

0
Wes