Ich habe folgende Disketten:
/dev/sda
/dev/sda1 EFI partition
/dev/sda2 Windows
/dev/sdb
/dev/sdb1 EFI partition
/dev/sdb2 Linux <-- currently mounted as /
und ich verwende derzeit Linux, daher /dev/sdb2
ist es derzeit als gemountet /
.
Mein BIOS ist so eingerichtet, dass es standardmäßig von der zweiten Festplatte und damit von Linux bootet.
Frage: Wie kann ich beispielsweise von der Linux-Befehlszeile aus einen Neustart zu Windows durchführen /dev/sda2
?(der Bootloader befindet sich in /dev/sda1
, genauer gesagt in /EFI/Boot/bootx64.efi
)
Ohnebeim Computerstart etwas tun zu müssen, F12um ein Startmenü auszulösen, undohneAuswählen einer Option in einem Grub-/Bootmenü. TL;DR: Gibt es eine Möglichkeit , mit einem einzigen Befehlszeilenbefehl
einen Neustart durchzuführen ?/dev/sda2
Antwort1
Führen Sie zunächst aus, sudo efibootmgr -v
um Ihre aktuellen UEFI-Startvariablen anzuzeigen. Die Starteinträge werden benannt, BootXXXX
wobei XXXX = vierstellige Zahl (kann hexadezimal sein).
Wenn es einen Starteintrag gibt, in dessen zweiter Spalte „Windows Boot Manager“ steht, dann ist das der Starteintrag für Windows. Er sollte ungefähr so aussehen:
BootXXXX* Windows Boot Manager HD(2,GPT,12345678-90ab-cdef-0123-456789abcdef,0x109000,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{ <UTF-16 representation of an UUID here>
Hier 12345678-90ab-cdef-0123-456789abcdef
wird die PARTUUID der ESP-Partition angezeigt, auf der sich der Windows-Bootmanager \EFI\Microsoft\Boot\bootmgfw.efi
befindet. In Ihrem Fall sollte dies die PARTUUID Ihrer /dev/sda1
Festplatte sein. Verwenden Sie diese Option, lsblk -o +PARTUUID
um die PARTUUIDs Ihrer Festplattenpartitionen anzuzeigen.
Sobald Sie die XXXX-Nummer Ihres Windows-Starteintrags kennen, können Sie Folgendes ausführen:
sudo efibootmgr --bootnext XXXX
Dadurch sollte das System (nur einmal) mit dem angegebenen Starteintrag, also Windows, gestartet werden. Sobald Sie Windows anweisen, herunterzufahren oder neu zu starten, sollte beim nächsten Start automatisch wieder Linux gestartet werden.
Nach der Verwendung des sudo efibootmgr --bootnext
Befehls ist das System für den Start von Windows vorbereitet und Sie können jeden der normalen Befehle verwenden, um das System neu zu starten.
Wenn Sie dies mit einem einzigen Befehl erledigen möchten, können Sie ein einfaches Skript erstellen:
#!/bin/sh
sudo efibootmgr --bootnext XXXX
sudo reboot
Antwort2
systemctl reboot --firmware-setup
Dadurch wird ein Neustart in das BIOS-Setup-Dienstprogramm durchgeführt.