wiki:DocumentacionUsuario1.1.1/nvramUEFI

Version 1 (modified by irina, 13 months ago) (diff)

--

Arranque en equipos UEFI

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

Partición ESP (EFI system Partition)

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.

NVRAM

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 

Ejemplo: Ordenadores portátiles

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

Funciones para modificar el orden de arranque

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