Wie starte ich ein bestimmtes Gerät über die Befehlszeile neu?

Wie starte ich ein bestimmtes Gerät über die Befehlszeile neu?

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/sdb2ist 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 -vum Ihre aktuellen UEFI-Startvariablen anzuzeigen. Die Starteinträge werden benannt, BootXXXXwobei 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-456789abcdefwird die PARTUUID der ESP-Partition angezeigt, auf der sich der Windows-Bootmanager \EFI\Microsoft\Boot\bootmgfw.efibefindet. In Ihrem Fall sollte dies die PARTUUID Ihrer /dev/sda1Festplatte sein. Verwenden Sie diese Option, lsblk -o +PARTUUIDum 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 --bootnextBefehls 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.

verwandte Informationen