Ich habe ein Problem beim Festlegen der gewünschten Startreihenfolge auf meinem Multi-Boot-Computer mit Windows 10, Ubuntu 15.10 und Fedora 23.
Folgendes habe ich getan: Ich hatte nur einen Dualboot mit Windows 10 und Ubuntu 15.10, der wie erwartet funktionierte:
- Ich könnte es konfigurieren und beispielsweise ein Design einrichten.
- Ich konnte problemlos auf einem USBLive booten.
Da ich andere Linux-Distributionen ausprobieren wollte, habe ich Fedora 23 installiert.
Es kam vor, dass Fedora beim Booten die Stromversorgung übernahm. Ich musste zuerst die Fedora-Bootkonfiguration ändern und Linux und initrd durch linuxefi und initrdefi ersetzen, um Ubuntu zu booten, wie erklärtHier.
Ich kann dann auf alle auf meinem Computer installierten Betriebssysteme zugreifen. Aber ich möchte die Startberechtigung an Ubuntu zurückgeben.
Also habe ich zuerst versucht, die Boot-Reparatur von Ubuntu aus zu starten, aber das ist nicht effizient.
Ich habe dann versucht, efibootmgr zu verwenden:
$ sudo efibootmgr
Mot de passe [sudo] pour xavier :
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0004,0006,0000,0007,0001,0002,0003
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002 UEFI: IP4 Qualcomm Atheros PCIe Network Controller
Boot0003 UEFI: IP6 Qualcomm Atheros PCIe Network Controller
Boot0004* Fedora
Boot0006* grub
Boot0007* ubuntu
Dann habe ich sowohl unter Ubuntu als auch unter Fedora versucht, die Reihenfolge zu ändern:
$ sudo efibootmgr --bootorder 0006,0004,0000,0001,0007,0002,0003
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0006,0004,0000,0001,0007,0002,0003
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002 UEFI: IP4 Qualcomm Atheros PCIe Network Controller
Boot0003 UEFI: IP6 Qualcomm Atheros PCIe Network Controller
Boot0004* Fedora
Boot0006* grub
Boot0007* ubuntu
Aber beim Neustart wird die Änderung, die ich mit efibootmgr vorgenommen habe, nicht angewendet, und wenn ich efibootmgr erneut nach der Bootreihenfolge frage, wird mir die mit Fedora angezeigt ...
Ich denke, das Problem könnte von verschiedenen Parametern herrühren, die ich nicht wirklich verstehe, wie zum Beispiel:
- Was ist der Unterschied zwischen EFI-Boot, Grub und Grub2?
- Welche Auswirkungen hat der Secureboot?
- Was ist der Legacy-Boot?
Ich bin an alle dankbar, die mir bei der Erlangung einer sauberen Einrichtung helfen können.
BEARBEITEN: Durch die Antwort von Rod Smith ist mir klar geworden, dass ich mit dem Argument -v weitere Informationen erhalten kann:
$ sudo efibootmgr -v
BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0004,0006,0000,0007,0001,0002,0003
Boot0000* Windows Boot Manager HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...3................
Boot0001* ubuntu HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0002 UEFI: IP4 Qualcomm Atheros PCIe Network Controller PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(448a5b4783b6,0)/IPv4(0.0.0.0:0<->0.0.0.0:0,0,0)..BO
Boot0003 UEFI: IP6 Qualcomm Atheros PCIe Network Controller PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(448a5b4783b6,0)/IPv6([::]:<->[::]:,0,0)..BO
Boot0004* Fedora HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\FEDORA\SHIM.EFI)
Boot0006* grub HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\GRUB\SHIMX64.EFI)
Boot0007* ubuntu HD(2,GPT,e0e2d47c-9086-47d6-b1e5-0ec248d9d6f0,0x12c800,0x96000)/File(\EFI\UBUNTU\GRUBX64.EFI)
Danke dafürPostVon Rod Smith habe ich die Rolle beider Ubuntu-Einträge verstanden. Aber der Grub-Eintrag scheint unerwünscht zu sein, da die Datei nicht existiert:
$ ls -a
. .. Boot fedora Microsoft MSI ubuntu
Sollte ich es vielleicht löschen?
Ich habe dann eine andere Reihenfolge versucht:
$ sudo efibootmgr --bootorder 0001,0004,0000,0006,0007,0002,0003
Aber leider funktionieren die Änderungen nicht.
Wenn ich Rod Smiths Antwort richtig verstehe, besteht die einzige Lösung darin, den Fedora-Eintrag zu löschen? Das würde vielleicht zu Problemen führen, wenn ich eines Tages nur noch Fedora behalten möchte, aber bis dahin könnte ich damit über USBLive booten?
Nochmals vielen Dank!
Antwort1
Ich beginne mit der Beantwortung der Fragen am Ende Ihres Beitrags:
- Beim Booten im EFI-Modus wird der native Boot-Modus der Firmware verwendet, während beim Booten im BIOS/CSM/Legacy-Modus das Compatibility Support Module verwendet wird, das das Booten älterer Bootloader im BIOS-Modus ermöglicht. Siehediese Frage und meine Antwort darauf auf superuser.comfür weitere Informationen zu diesem Thema.
- GRUB ist einer vonmehrere EFI-Modus-Bootloader für Linux.(Es gibt auch GRUB-Versionen für BIOS und andere Firmware-Typen.) GRUB Legacy, auch bekannt als GRUB 1, wurde für EFI nie offiziell unterstützt, obwohl Fedora eine stark gepatchte Version hatte, die jetzt Abandonware ist. Daher beziehen sich die meisten Verweise auf GRUB in einem EFI-Kontext auf GRUB 2.
- Secure Boot ist eine optionale EFI-Funktion, die die Systemsicherheit verbessern soll, indem sie verhindert, dass ein EFI Binärdateien startet, die nicht von einer vertrauenswürdigen Autorität kryptografisch signiert sind. Im Prinzip könnten Sie diese Autorität sein, oder jemand anderes. In der Praxis besitzt Microsoft die einzigen allgemein verfügbaren Schlüssel für Secure Boot und kontrolliert daher den Prozess. Glücklicherweise signiert Microsoft Binärdateien von Drittanbietern, und Ubuntu hat dies genutzt, um Microsoft dazu zu bringen, eine Binärdatei namensUnterlegscheibedas wiederum enthält den Schlüssel von Canonical, der zum Signieren von GRUB und des Linux-Kernels in Ubuntu verwendet wird. Beachten Sie, dass beim Dual-Booten zweier Linux-Distributionen der Shim keiner Distribution den Schlüssel für die andere Distribution enthält. Daher müssen Sie den Schlüssel der anderen Distribution in der Liste der Machine Owner Keys (MOK) registrieren, was Sie mit dem
MokManager.efi
Dienstprogramm unter EFI tun können. Ich glaube, dassb-updatevar
Dienstprogramm kann dies auch unter Linux, aber ich habe weniger Erfahrung damit. SieheHierfür mehrere Schlüssel an einem praktischen Ort; Sie benötigen.cer
oder.der
Schlüssel. Siehemeine Seite zum Thema Secure Bootfür weitere Informationen zu diesem Thema.
Zu Ihrem Hauptproblem: Der efibootmgr -o
(oder efibootmgr --bootorder
)-BefehlsollenGeben Sie die Kontrolle an das von Ihnen angegebene Bootprogramm weiter. Beachten Sie jedoch, dass Sie die Kontrolle wahrscheinlich an Boot0001
oder Boot0007
und nicht an übergeben wollten Boot0006
– Ubuntu verwendet den Namen ubuntu
und nicht grub
, um seine eigenen Booteinträge zu beschreiben. Sie können jeden dieser Einträge besser identifizieren, indem Sie eingeben sudo efibootmgr -v
, wodurch vollständige Pfade zu den Booteinträgen erstellt werden (identifiziert mithilfe von EFI-Pfadkennungen, die lang und komplex sind und sich unter anderem auf die GUID-Nummern der Partitionen beziehen, die Sie mit gdisk
oder einigen Versionen von erhalten können blkid
). Bevor Sie also irgendetwas anderes tun, sollten Sie versuchen, die Bootreihenfolge auf den richtigen Wert zu ändern, anstatt auf Boot0004
.
In der Praxis efibootmgr
funktionieren Änderungen manchmal nicht, weil fehlerhafte EFIs oder beschädigte Daten im NVRAM des Computers (wo die efibootmgr
angezeigten und angepassten Daten gespeichert sind) vorhanden sind. Normalerweise werden drei Lösungen für solche Probleme eingesetzt:
- Unerwünschte Einträge löschen-- Manchmal behebt das Löschen eines unerwünschten oder doppelten Eintrags, z. B.
sudo efibootmgr -b 0004 -B
durch LöschenBoot0004
, ein Problem. (Vielleicht möchten Sie diesen Eintrag aber nicht löschen.) Manchmal müssen Sie mehrere Starteinträge löschen, damit das System wieder funktioniert.NichtLöschen Sie jedoch Einträge, die Sie zum Booten benötigen. Außerdem haben die meisten Computer Einträge, die die Firmware selbst erstellt, wie die beidenNetwork Controller
Einträge in Ihrer Ausgabe. Das Löschen dieser Einträge ist im Allgemeinen nicht ratsam. - Setzen Sie die Firmware auf die Standardeinstellungen zurück.-- Die meisten EFIs bieten im Firmware-Setup-Dienstprogramm die Möglichkeit, alle Einstellungen auf ihre Standardwerte zurückzusetzen. (Manche Leute nennen das „BIOS-Setup-Bildschirme“ oder etwas Ähnliches – obwohl EFIs technisch gesehen keine BIOSes sind, obwohl viele Leute und sogar Hersteller sie oft so bezeichnen.) Der Nachteil dieses Ansatzes ist, dass er wahrscheinlich allealledie EFI-Einträge, wodurch das System nicht mehr gebootet werden kann, bis Sie mithilfe einer Notfalldiskette mindestens einen funktionierenden Eintrag wiederherstellen.
- Installieren Sie Ihren Bootloader auf einem anderen Eintrag-- Bei diesem Ansatz wird der gewünschte Bootloader kopiert oder verschoben/umbenannt, um den Dateinamen dessen zu verwenden, was das EFI unbedingt starten möchte. Dies wird im Allgemeinen verwendet, wenn ein EFI sich weigert, etwas anderes als den Windows-Bootloader zu starten. In Ihrem Fall sollte es also nicht erforderlich sein.
Wenn ich jedoch noch ein wenig zurückgehe, möchte ich sagen, dass es eigentlich egal sein sollte, welchen GRUB Sie verwenden (Fedora oder Ubuntu); es handelt sich im Grunde um dieselbe Software. Wenn Sie Probleme haben, Fedoras GRUB so zu konfigurieren, dass er das tut, was Sie wollen, können Sie immer seine Einstellungen optimieren – aber andererseits ist die Konfiguration von GRUB 2 notorisch schwierig, wenn man über einige sehr grundlegende Dinge hinausgeht. Aus diesem Grund bevorzugen viele Leute, die mehrere Linux-Distributionen dual booten, einen distributionsunabhängigen Bootloader – entweder ihren eigenen GRUB oder etwas anderes. Mein eigenerrEFInd Bootmanagerhat mehrere Vorteile für solche Konfigurationen, wie z. B. die fehlende Abhängigkeit von Konfigurationsdateien zum Erkennen von Kernel-Updates und die Unabhängigkeit von den Konfigurationsskripten eines bestimmten Betriebssystems. Wenn Sie jedoch Probleme haben, efibootmgr
von einem GRUB zu einem anderen zu wechseln, haben Sie möglicherweise auch Probleme, rEFInd (oder einen anderen Bootloader) zu starten. Wenn Sie Secure Boot verwenden, müssen Sie möglicherweise mindestens einen Secure Boot-Schlüssel mit Ihrem MOK registrieren, damit rEFInd funktioniert. Wenn der Grund, warum Sie zu Ubuntus GRUB wechseln möchten, darin besteht, dass Fedoras GRUB die Ubuntu-Kernel nicht startet, liegt das Problem höchstwahrscheinlich bei Secure Boot. Das Hinzufügen des Secure Boot-Schlüssels für Canonical/Ubuntu sollte dieses Problem lösen.
BEARBEITEN:
Boot0001
ist der Eintrag, der am wahrscheinlichsten das bewirkt, was Sie möchten, daher sollte er an den Anfang Ihrer Bootliste stehen. Aber es hört sich so an, als ob das bei Ihnen nicht funktioniert.
Wenn Sie damit leben können, Fedora die Kontrolle über den Startvorgang zu überlassen, ist es vielleicht am besten, dies zu tun, damit Sie nicht eine Kaskade neuer Probleme verursachen. Das vollständige Löschen des Fedora-Eintrags ist sicherlich riskant, denn wenn Sie dann nichts anderes zum Laufen bringen, können Sie möglicherweise nichts mehr starten.
Sie könnten versuchenDeaktivieren von Secure Boot,Vorausgesetzt, es ist derzeit aktiviert, da diese Funktion insbesondere bei komplexen Setups Probleme verursachen kann.
Antwort2
Dank Rod Smiths Hilfe habe ich endlich eine Lösung gefunden, um die gewünschte Startreihenfolge auszuwählen.
Da er erwähnte, dass Secure Boot deaktiviert werden soll, habe ich auf die BIOS-Einstellungen zugegriffen und wie erwartet war Secure Boot bereits deaktiviert. Ich habe jedoch die Gelegenheit genutzt, in den BIOS-/UEFI-Einstellungen die Startreihenfolge ohne Efibootmgr zu ändern.
Dann habe ich ausgewählt, zuerst vom USB-Gerät zu booten, und anschließend habe ich eine Boot-Reihenfolge auf der Festplatte festgelegt, mit Ubuntu zuerst, und es hat funktioniert!
Ich bin daher der festen Überzeugung, dass, wenn efibootmgr aus irgendeinem Grund nicht in der Lage ist, die Reihenfolge zu ändern, der direkte Zugriff auf die BIOS-/UEFI-Einstellungen die beste und auch nicht wirklich schwierige Option sein dürfte.
Ich hoffe, das könnte anderen helfen.
Danke nochmal für deine Hilfe.
Xavier