Die TL; DR, hinzugefügt in der Bearbeitung:
Die Frage ist:
Wie kann ich das BIOS dazu bringen, GRUB gegenüber Windows Boot Manager auf derselben UEFI-Bootpartition zu bevorzugen?
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 booten möchte.
Ich richte einen neuen Computer ein und möchte, dass er standardmäßig Ubuntu startet, habe aber die Möglichkeit, Windows beim Booten auszuwählen. Dies ist besonders wichtig, wenn der Strom ausfällt und zurückkommt. 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-Startpartition. GRUB bootet so gut, und beim Start wird das GRUB-Boot-Menü angezeigt, in dem ich alle Elemente auswählen kann, die GRUB kennt.
Dann habe ich Windows 10 Pro von einer 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-Boot-Manager anstelle von GRUB auswählt. Die einzige Möglichkeit, Linux jetzt zu starten, besteht darin, den BIOS-Boot-Manager (F11 in meinem BIOS) zu verwenden und den GRUB-Bootloader manuell auszuwählen. 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" auswählen. Außerdem kann ich nicht auswählen, welcher Bootloader auf dieser Partition verwendet werden soll . Standardmäßig wird Windows und nicht GRUB ausgewählt.
Das Internet (und diese Site) schlagen vor, dass der alte Weg, dies zu beheben, darin besteht, es auszuführen update-grub
(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 Verhalten als oben beschrieben, wobei 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. Dieser Menüpunkt funktioniert, wenn ich die GRUB-Partition im UEFI-Bootmanager manuell auswähle.)
Was kann ich tun, um GRUB zum "Standard" -Start auf meiner UEFI-Startpartition zu machen?
Verwenden eines MSI X399 Carbon-Motherboards.
Zweite Änderung: 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.
quelle
Antworten:
Es gibt verschiedene Möglichkeiten, dies zu tun, darunter:
ubuntu
, da Sie es von dieser Distribution aus installiert haben.)bcfg
Befehl in einer EFI-Shell der Version 2 verwenden, wie im Arch Linux-Wiki beschrieben. Wenn Ihr System noch nicht mit einer leicht zugänglichen Shell eingerichtet ist, ist dieser Ansatz wahrscheinlich schwieriger zu verwenden als die anderen, aber er ist betriebssystemunabhängig.ubuntu
Eintrag in der EasyUEFI-Liste klicken und ihn nach oben verschieben.bcdedit
- Der Windows-bcdedit
Befehl kann die NVRAM-basierte Startreihenfolge ändern. Insbesondere das Öffnen eines Administrator- Eingabeaufforderungsfensters und das Eingebenbcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi
(optional gefolgt vonbcdedit /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 Siesudo efibootmgr
alleine tippen , um die Optionen anzuzeigen. Notieren Sie die Nummer (Boot####
), die demubuntu
Eintrag zugeordnet ist, und die aktuelle Startreihenfolge (in derBootOrder
Zeile).ubuntu
Mit der-o
Option können Sie dann eine neue Startreihenfolge mit dem Eintrag oben eingeben . Wenn die aktuelle Startreihenfolge beispielsweise 0000,0003,0007,0004 undubuntu
0007 lautet, geben Sie Folgendes einsudo efibootmgr -o 0007,0000,0003,0004
, um die Startreihenfolge anzupassen.refind-mkdefault
- Dieses Skript wird mit rEFInd geliefert und ist eine Möglichkeit, das vorhergehende Verfahren zu automatisieren. Wenn Sie rEFInd nicht verwenden, müssen Sie das Skript hier herunterladen und ausführbar machen (chmod a+x refind-mkdefault
). Sie würden es dann alssudo ./refind-mkdefault -L ubuntu
oder ausführensudo ./refind-mkdefault -L shimx64
, um GRUB zum Standard-Starteintrag zu machen.Bei jeder dieser Optionen treten potenzielle Probleme und Komplikationen auf. Der wahrscheinlichste Komplikationsfaktor ist, wenn alte oder alternative
ubuntu
Starteinträge vorhanden sind . Es ist wichtig, dass Sie die richtige Position in der Startreihenfolge an die oberste Position bringen. Wenn Sie den falschen verschieben, werden Sie entweder keine Verhaltensänderung oder etwas nicht funktionierendes Booten feststellen, was das Booten erschweren würde. Wenn Sie verwendenefibootmgr
,BootCurrent
können Sie anhand der Zeile feststellen, welche Option Sie als Standard festlegen sollten.Es gibt andere Möglichkeiten, die übertrieben sind. Eine Neuinstallation von GRUB (über Boot Repair oder
grub-install
) sollte zum Beispiel ausreichen. Bei diesen Ansätzen besteht jedoch die Gefahr, dass eine bekanntermaßen funktionierende GRUB-Konfiguration beschädigt wird.Beachten Sie auch, dass einige EFIs fehlerhaft sind und es andere Probleme gibt, die es schwierig machen können, GRUB zum zuverlässigen Booten zu bringen. Sie können diese Fragen und Antworten auf AskUbuntu überprüfen, wenn Sie auf solche Probleme stoßen:
quelle
sudo efibootmgr -n 0002
ist viel besser als die Änderung der aktuellen SO-Reihenfolge. Es ändert sichBootNext: 0001
und bleibtBootCurrent: 0002
für das nächste Mal erhalten, sodass Ihre aktuellen GRUB-Einträge unberührt bleiben. Fügen Sie einfach eine Bash mit hinzuchmod +x
und wickeln Sie diesen Befehl zusammen mit dem Neustart ein.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 zuerst installiert ist, wo grub installiert ist.
Wie ich sehe, haben Sie zwei Möglichkeiten.
Option 1
Ich würde Ihnen empfehlen, zuerst Windows 10 zu installieren . Dann installiere Ubuntu. Aber ich weiß, dass es ein Tabu ist, einfach "Software neu installieren" zu sagen, also biete ich auch eine Alternative an.
Option 2
Mit Ihrem aktuellen Setup würde ich Ihnen empfehlen, ein Live Ubuntu CD / Flash-Laufwerk zu starten und zu installieren und auszuführen
boot-repair
. Klicken Sie auf die Option "Empfohlene Reparatur" und befolgen Sie die Anweisungen. Gehen Sie es sorgfältig durch und lesen Sie alle Befehle, bevor Sie es ausführen. Dadurch wird die aktuelle Grub-Installation durch eine neue überschrieben, die sie hoffentlich beheben sollte.quelle
Ich sehe mehrere Lösungen:
efibootmgr
. 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 lieber etwas wie rEFInd installieren.boot
.quelle
efibootmgr
es nicht funktioniert, weiß ich, dass ich MSI nicht kaufen werde.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 grub als Boot-Option angezeigt wird. Ich musste dem BIOS einen EFI hinzufügen.
Ich ging in meinem BIOS zur "Boot List Option". Klicken Sie auf "Boot-Option hinzufügen" (mir ist bekannt, dass dies BIOS-spezifisch ist). Dies gab mir eine Option für den Dateinamen, der in meinem Fall war
\EFI\ubuntu\grubx64.efi
und gab ihm einen Namengrub
Ich habe dann den
grub
Eintrag an den Anfang der Startsequenz verschoben und jetzt wird er als Standardeintrag angezeigt.Das heißt, ich muss nur die richtige EFI-Datei suchen und an den Anfang Ihrer Startsequenz / -reihenfolge verschieben.
quelle
Keine der oben genannten Optionen funktionierte bei mir mit einem alten HP 655-Laptop. Ich fand heraus, dass die Lösung darin besteht, den Windows-Boot-Manager inaktiv zu setzen:
Ersetzen Sie 4 durch die Anzahl der Windows-Boot-Manager. Führen Sie efibootmgr erneut aus und Sie sollten sehen, dass der Stern verschwindet, um Inaktivität zu markieren.
Nachdem mein Computer gestartet wurde, können Sie das Startmenü und die Fenster weiterhin auswählen.
quelle
Eine mögliche Lösung wäre das manuelle Bearbeiten der Datei / etc / default / grub.
sudo vim /etc/default/grub
Der Standardeintrag wird durch die
GRUB_DEFAULT=
Einstellung in / etc / default / grub bestimmt. Der erste "Menüeintrag" hat den Wert "0". Wenn Ubuntu der zweite Eintrag im Startbildschirm ist, setzen Sie GRUB_DEFAULT = 1.Anschließend müssten Sie den Befehl ausführen, um die Grub-Konfiguration zu aktualisieren:
update-grub
Eine weitere Option wäre die Installation des Grub-Customizers und die Verwendung der GUI zum Konfigurieren der Startpriorität.
quelle