Tengo los siguientes discos:
/dev/sda
/dev/sda1 EFI partition
/dev/sda2 Windows
/dev/sdb
/dev/sdb1 EFI partition
/dev/sdb2 Linux <-- currently mounted as /
y actualmente estoy usando Linux, por lo que /dev/sdb2
actualmente está montado como /
.
Mi BIOS está configurado para arrancar de forma predeterminada en un segundo disco duro, por lo que arranca en Linux.
Pregunta: desde la línea de comandos de Linux, ¿cómo reiniciar en Windows, es decir /dev/sda2
?(el gestor de arranque está en /dev/sda1
, más precisamente en /EFI/Boot/bootx64.efi
)
Sintener que hacer algo como F12al iniciar la computadora para activar un menú de inicio, ysineligiendo una opción en un menú de Grub/arranque.
TL;DR: ¿Hay alguna manera de reiniciar /dev/sda2
con un solo comando de línea de comando?
Respuesta1
Primero, ejecute sudo efibootmgr -v
para mostrar sus variables de arranque UEFI actuales. Las entradas de inicio se nombrarán BootXXXX
donde XXXX=número de cuatro dígitos (puede ser hexadecimal).
Si hay una entrada de inicio cuya segunda columna dice "Administrador de inicio de Windows", entonces esa es la entrada de inicio de Windows. Debería verse similar a este:
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>
Aquí, 12345678-90ab-cdef-0123-456789abcdef
será el PARTUUID de la partición ESP desde donde \EFI\Microsoft\Boot\bootmgfw.efi
se ubicará el administrador de arranque de Windows. En tu caso debería ser el PARTUUID de tu /dev/sda1
disco. Úselo lsblk -o +PARTUUID
para ver los PARTUUID de las particiones de su disco.
Una vez que sepa el número XXXX de su entrada de inicio de Windows, puede ejecutar:
sudo efibootmgr --bootnext XXXX
Esto debería hacer que el sistema arranque (sólo una vez) utilizando la entrada de arranque especificada, es decir, en Windows. Una vez que le indique a Windows que se apague o reinicie, el siguiente inicio debería iniciar Linux nuevamente automáticamente.
Después de usar el sudo efibootmgr --bootnext
comando, el sistema está preparado para iniciarse en Windows y puede usar cualquiera de los comandos normales para reiniciar el sistema.
Si quieres hacerlo con un solo comando, puedes hacer un script simple:
#!/bin/sh
sudo efibootmgr --bootnext XXXX
sudo reboot
Respuesta2
systemctl reboot --firmware-setup
Esto se reiniciará en la utilidad de configuración del BIOS.