Kann auf einem Multi-Boot-UEFI-System ausgewählt werden, welches System vor dem Neustart gestartet werden soll?

542
George T

Ich frage mich, ob es einen Weg gibt, einen Computer mit UEFI und zwei verschiedenen Betriebssystemen (in meinem Fall Windows 10 und Linux Mint 17.x) zu haben, bei dem Sie nicht warten müssen, bis das System heruntergefahren ist, um eine Auswahl zu treffen ein anderes System zum Booten.

Zur weiteren Erläuterung:
Normalerweise funktionieren Multi-Boot-Systeme so, dass beim Starten des Computers ein Menü angezeigt wird (über einen Uefi-Manager oder Bootloader usw.) und Sie ein zu startendes Betriebssystem auswählen. Dieses Menü kann normalerweise so konfiguriert werden, dass es eine Standardeinstellung hat, sodass es bei einer unbeaufsichtigten Installation selbst eine "Auswahl" treffen kann, oder sogar, um sich an Ihre letzte Auswahl zu erinnern und sie wiederzuverwenden, bis Sie eine andere auswählen (zumindest war dies die der Fall mit dem Erbe GRUB).

Auf meinem Computer ist Mint die Standardeinstellung, und dies funktioniert meistens. Wenn ich jedoch unter Windows bin und neu in Windows neu starten möchte, muss ich warten, bis das GRUB-Menü angezeigt wird, und Windows auswählen, andernfalls wird es in Mint neu gestartet. Da das Herunterfahren einige Zeit dauern kann (insbesondere bei der Installation von Updates), bedeutet dies, dass Sie sich in der Nähe des Computers aufhalten, andernfalls könnte ich wegtreten.

Im Idealfall möchte ich ein Betriebssystem auswählen können, wenn ich dem Computer befehle, einen Neustart durchzuführen.

Offensichtlich ist dies nicht Teil des Standardmenüs "Herunterfahren" in beiden Systemen, aber ich denke, es könnte mit einem Skript ausgeführt werden.
Mit GRUB kann es beispielsweise möglich sein, dass ein Skript seine Konfigurationsdatei ändert, um ein bestimmtes System als Standard festzulegen und dann einen Neustart durchzuführen. Dies kann jedoch zu lange dauern, würde Root-Berechtigungen erfordern und nur von Mint aus arbeiten.

Gibt es eine solche Methode, die einen verfügbaren Bootmanager verwendet (z. B. möglicherweise rEFInd), der von beiden Betriebssystemen ohne besondere Bestätigung funktionieren würde?

BEARBEITEN: rEFInd unterstützt offensichtlich eine solche Funktion. Link Auf derselben Seite wird auch vorgeschlagen, wie Sie die Variable unter Linux einstellen. Auch scheint MSDN ein Verfahren zu hat ein EFI - Variable über C ++ Code, verfügbar in Windows 10 einzustellen Link
- So scheint es, dass eine Art und Weise einrichten, dies zu tun wäre möglich. Ich kann es jedoch erst in wenigen Tagen versuchen.

4
Was Sie fragen, ist gleichbedeutend damit, dass Windows eine Variable an GRUB übergibt. Unwahrscheinlich, IMHO. MariusMatutiae vor 8 Jahren 0
Ich frage nicht speziell nach GRUB. Jeder Bootloader / Manager, der dies tun würde, ist akzeptabel. George T vor 8 Jahren 0
Ich verstehe das, aber ich glaube nicht, dass dies den Kern meines oben genannten Kommentars ändert. MariusMatutiae vor 8 Jahren 0
Ja, aber Sie möchten viel RAM und einen Badass-Prozessor wie den neuen i7 Jordan Davis vor 8 Jahren 0
http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf Jordan Davis vor 8 Jahren 0

1 Antwort auf die Frage

1
Rod Smith

Ihre Frage selbst enthält einige mögliche Antworten. Eine andere Möglichkeit besteht darin, den EFI- BootNextParameter zu ändern. Dadurch wird ein einmaliger Start des angegebenen Ziel-Startprogramms festgelegt. Dies kann in Linux über das efibootmgrDienstprogramm erfolgen:

  1. Tippen Sie efibootmgr(oder efibootmgr -vum mehr Details zu erhalten) als rootoder mit sudo. Daraufhin wird eine Liste Ihrer Startoptionen angezeigt.
  2. Bestimmen Sie die Startoption, die Sie starten möchten. Wenn Sie beispielsweise direkt unter Windows starten möchten, möchten Sie wahrscheinlich, dass die Option berechtigt ist Windows Boot Manager. (Beachten Sie jedoch, dass diese Namen manchmal irreführend sind. Möglicherweise müssen Sie die Details für Ihr System ausprobieren und ermitteln.)
  3. Geben Sie efibootmgr -n ####als rootoder using ein sudo, um dem System zu sagen, dass es als Boot####nächstes booten soll. Dabei ####wird die Nummer des Eintrags angegeben, den Sie starten möchten.

Ich glaube, Sie können mit EasyUEFI in Windows etwas Ähnliches machen, aber dies ist ein GUI-Tool und daher für das von Ihnen beschriebene Szenario möglicherweise nicht hilfreich. Könnte vielleicht bcdeditden Trick tun, aber ich habe mich nicht darum gekümmert.

EasyUEFI ermöglicht den Zugriff auf die Befehlszeile in der kostenpflichtigen Version, die für manche Benutzer eine Option sein kann. George T vor 8 Jahren 0