En el arranque de los equipos UEFI hay que tener en cuenta:
• Los cargadores de arranque de los sistemas operativos, que están en la partición de sistema EFI (ESP)
• La NVRAM (memoria no volátil) que guarda la información del orden de arranque
En los equipos UEFI los cargadores de arranque se guardan en la primera partición dentro del directorio EFI. Cada cargador de arranque se guardará en un subdirectorio que puede llamarse Microsoft, ubuntu, etc. dependiendo del sistema operativo o Part-Disco-Particion si se ha restaurado con OpenGnsys.
Cuando un equipo ha sido restaurado con OpenGnsys el contenido de la partición primera debe ser parecido a este:
/mnt/nvme0n1p1/
• boot
◦ grub → Vacío
◦ grubMBR → Configuración del grub.
• EFI
◦ grub → Primera etapa del grub.
◦ Part-01-02 → Cargador de arranque de la partición segunda del primer disco.
Al iniciar un equipo UEFI, consulta la NVRAM que contiene la información del orden de arranque del equipo e inicia el cargador de arranque que tenga en primer lugar. En caso de fallo irá al siguiente.
Cuando configuramos un equipo para trabajar con OpenGnsys, definiremos en la UEFI la tarjeta de red como el dispositivo de arranque en primer lugar.
El restaurar un equipo, en la fase de postconfiguración, se instala el grub y se configura en la NVRAM en segundo lugar, tras la tarjeta de red. De modo que si hay un fallo de red o se desconecta el cable, el equipo muestra el menú del grub permitiendo acceder a los distintos sistemas operativos instalados.
Al iniciar un sistema operativo desde OpenGnsys, se configurará una entrada en la NVRAM para este cargador de arranque.
Siguiendo con el ejemplo de un equipo restaurado con OpenGnsys, podemos ver el contenido de la NVRAM con:
ogNvramList
1 UEFI: PXE IPv4 Realtek PCIe GBE Family Controller *
2 grub *
4 Part-01-02 *
Y el orden de arranque:
ogNvramGetOrder
0001,0002,0004
Cuando tenemos portátiles le ponemos el cable de red para restaurar, pero para el uso normal utilizan la WIFI.
Podemos querer que en el caso de no haber cable de red, se arranque directamente en Windows. En ese caso, continuando con el ejemplo anterior, la siguiente función permite cambiar el orden de arranque en la NVRAM para que Windows sea el segundo tras la tarjeta de red.
ogNvramSetOrder 1 4 2
OpenGnsys ofrece una serie de funciones para modificar la NVRAM.
ogNvramActiveEntry
Función ogNvramActiveEntry: Configura a activa entrada del gestor de arranque (NVRAM).
Formato: ogNvramActiveEntry [ Num_order_entry | Label_entry ]
Ejemplo: ogNvramActiveEntry 2
Ejemplo: ogNvramActiveEntry "Windows Boot Manager"
ogNvramAddEntry
Función ogNvramAddEntry: Crea nueva entrada del gestor de arranque (NVRAM).
Formato: ogNvramAddEntry Str_label_entry Str_boot_loader [ Bool_add_bootorder ]
Ejemplo: ogNvramAddEntry 1 2 TRUE
Ejemplo: ogNvramAddEntry grub /EFI/grub/grubx64.efi TRUE
Ejemplo: ogNvramAddEntry Windows /EFI/Microsoft/Boot/bootmgfw.efi
ogNvramDeleteEntry
Función ogNvramDeleteEntry: Borra entrada del gestor de arranque (NVRAM).
Formato: ogNvramDeleteEntry [ Num_order_entry | Label_entry ]
Ejemplo: ogNvramDeleteEntry 2
Ejemplo: ogNvramDeleteEntry "Windows Boot Manager"
ogNvramGetCurrent
Función ogNvramGetCurrent: Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo.
Formato: ogNvramGetCurrent
Ejemplo: ogNvramGetCurrent
ogNvramGetNext
Función ogNvramGetNext: Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque.
Formato: ogNvramGetNext
Ejemplo: ogNvramGetNext
ogNvramGetOrder
Función ogNvramGetOrder: Muestra el orden de las entradas del gestor de arranque (NVRAM).
Formato: ogNvramGetOrder
Ejemplo: ogNvramGetOrder
ogNvramGetTimeout
Función ogNvramGetTimeout: Muestra el tiempo de espera del gestor de arranque (NVRAM).
Formato: ogNvramGetTimeout
Ejemplo: ogNvramGetTimeout
ogNvramInactiveEntry
Función ogNvramInactiveEntry: Configura a inactiva entrada del gestor de arranque (NVRAM).
Formato: ogNvramInactiveEntry [ Num_order_entry | Label_entry ]
Ejemplo: ogNvramInactiveEntry 2
Ejemplo: ogNvramInactiveEntry "Windows Boot Manager"
ogNvramList
Función ogNvramList: Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas
Formato: ogNvramList
Ejemplo: ogNvramList
ogNvramSetNext
Función ogNvramSetNext: Configura el próximo arranque con la entrada del gestor de arranque (NVRAM).
Formato: ogNvramSetNext [ Num_order_entry | Label_entry ]
Ejemplo: ogNvramSetNext 2
Ejemplo: ogNvramSetNext "Windows Boot Manager"
ogNvramSetOrder
Función ogNvramSetOrder: Configura el orden de las entradas del gestor de arranque (NVRAM).
Formato: ogNvramSetOrder Num_order1 [ Num_order2 ] ...
Ejemplo: ogNvramSetOrder 1 3
ogNvramSetTimeout
Función ogNvramSetTimeout: Configura el tiempo de espera del gestor de arranque (NVRAM).
Formato: ogNvramSetTimeout int_Timeout (seg)
Ejemplo: ogNvramSetTimeout 2