summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrina Gómez <irinagomez@us.es>2019-04-25 11:22:44 +0200
committerIrina Gómez <irinagomez@us.es>2019-04-25 11:22:44 +0200
commitb0a7050136d336391db2f38718e3f34f4ab9a99f (patch)
tree15bbcac8ca792604897ff2dddcf9c5aa13ec4c71
parent528ff4ca943d3f439d18d6d467c699329bece768 (diff)
#802 #888 If UEFI active, always installs rEFInd and sets it as bootloader (NVRAM) second entry. New Nvram management functions: Add new entry, get and set de next boot entry.
-rwxr-xr-xclient/engine/Boot.lib6
-rw-r--r--client/engine/UEFI.lib167
-rw-r--r--client/shared/etc/lang.ca_ES.conf22
-rw-r--r--client/shared/etc/lang.en_GB.conf20
-rw-r--r--client/shared/etc/lang.es_ES.conf21
-rwxr-xr-xclient/shared/scripts/configureOs5
6 files changed, 185 insertions, 56 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index 3e573acb..47a3ee33 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -2717,6 +2717,12 @@ else
[ -d $REFINDDIR ] || ogRaiseError $OG_ERR_NOTFOUND "refind-install or $REFINDDIR" || return $?
cp -r $REFINDDIR $EFIDIR
fi
+# Creamos entrada en NVRAM
+ogNvramAddEntry refind /EFI/refind/grubx64.efi
+# La ponemos en el segundo lugar del orden de arranque
+NUMENTRY=$(efibootmgr |awk '{ if ($2=="refind") print substr($1,5,4)}')
+NEWORDER="$(ogNvramGetOrder|awk -v NEW="$NUNENTRY" '{ gsub(",", " "); printf "%x %x %s\n", $1 ,NEW, substr($0, index($0,$2)) }')"
+ogNvramSetOrder $NEWORDER
# Para la configuración del ogLive
ogMountCache &>/dev/null
diff --git a/client/engine/UEFI.lib b/client/engine/UEFI.lib
index 4c1345a6..ca64ff08 100644
--- a/client/engine/UEFI.lib
+++ b/client/engine/UEFI.lib
@@ -3,15 +3,15 @@
# Las funciones se incluirán las librerías ya existentes
#/**
-# ogActiveNvramEntry
-#@brief Borra entrada de la NVRAM identificada por la etiqueta o el orden
+# ogNvramActiveEntry
+#@brief Activa entrada de la NVRAM identificada por la etiqueta o el orden
#@param Num_order_entry | Label_entry Número de orden o la etiqueta de la entrada a borrar.
#@return (nada)
#@exception OG_ERR_FORMAT formato incorrecto.
#@exception OG_ERR_NOTUEFI UEFI no activa.
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
#*/ ##
-function ogActiveNvramEntry () {
+function ogNvramActiveEntry () {
local NUMENTRY
# Si se solicita, mostrar ayuda.
@@ -29,7 +29,7 @@ fi
ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
# Distingo si es número de orden o etiqueta
-if [[ $1 =~ ^([0-9a-FA-F]+)*$ ]]; then
+if [[ $1 =~ ^([0-9a-fA-F]+)$ ]]; then
NUMENTRY=$( efibootmgr |awk -v NUM="$(printf %04x 0x$1|tr '[:lower:]' '[:upper:]')" '{ if($1~NUM) print substr($1,5,4)}')
else
NUMENTRY=$(efibootmgr |awk -v LABEL="$1" '{ if(substr($0, index($0,$2))==LABEL) print substr($1,5,4)}')
@@ -40,6 +40,53 @@ fi
efibootmgr -a -b $NUMENTRY &>/dev/null
}
+#/**
+# ogNvramAddEntry
+#@brief Crea nueva entrada en el gestor de arranque (NVRAM), opcionalmente la incluye al final del orden de arranque.
+#@param Str_Label_entry Etiqueta de la entrada a crear.
+#@param Str_BootLoader Cargador de arranque.
+#@param Bool_Incluir_Arranque Incluir en el orden de arranque (por defecto FALSE) (opcional)
+#@return (nada)
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@exception OG_ERR_NOTUEFI UEFI no activa.
+#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
+#*/ ##
+function ogNvramAddEntry () {
+local EFIDISK EFIPART BOOTLABEL BOOTLOADER ADDORDER
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME Str_label_entry Str_boot_loader [ Bool_add_bootorder ]" \
+ "$FUNCNAME grub /EFI/grub/grubx64.efi TRUE" \
+ "$FUNCNAME Windows /EFI/Microsoft/Boot/bootmgfw.efi"
+ return
+fi
+
+# Error si no se recibe 1 parámetro.
+[ $# -ge 2 ] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME Str_label_entry Str_boot_locader" || return $?
+
+# Si no es equipo UEFI salir con error
+ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
+
+read -e EFIDISK EFIPART <<<"$(ogGetEsp)"
+[ -n "$EFIPART" ] || ogRaiseError $OG_ERR_NOTFOUND "ESP" || return $?
+
+# Recogemos parámetros
+BOOTLABEL="$1"
+BOOTLOADER="$2"
+
+# Si existe entrada con la misma etiqueta la borramos
+ogNvramDeleteEntry "$BOOTLABEL" 2>/dev/null
+
+efibootmgr -C -d $(ogDiskToDev $EFIDISK) -p $EFIPART -L "$BOOTLABEL" -l "$BOOTLOADER" &>/dev/null
+
+# Incluimos la entrada en el orden de arranque (opcional)
+if [ "${3^^}" == "TRUE" ]; then
+ NUMENTRY=$(efibootmgr |awk -v LABEL="$BOOTLABEL" '{ if(substr($0, index($0,$2))==LABEL) print substr($1,5,4)}')
+ ogNvramSetOrder $(ogNvramGetOrder |tr , " ") $NUMENTRY
+fi
+}
+
#/**
# ogCopyEfiBootLoader int_ndisk str_repo path_image
@@ -88,7 +135,7 @@ esac
#/**
-# ogDeleteNvramEntry
+# ogNvramDeleteEntry
#@brief Borra entrada de la NVRAM identificada por la etiqueta o el orden
#@param Num_order_entry | Label_entry Número de orden o la etiqueta de la entrada a borrar.
#@return (nada)
@@ -96,8 +143,8 @@ esac
#@exception OG_ERR_NOTUEFI UEFI no activa.
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado (entrada en NVRAM).
#*/ ##
-function ogDeleteNvramEntry () {
-local NUMENTRY
+function ogNvramDeleteEntry () {
+local NUMENTRY n
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -114,7 +161,7 @@ fi
ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
# Distingo si es número de orden o etiqueta
-if [[ $1 =~ ^([0-9a-FA-F]+)*$ ]]; then
+if [[ $1 =~ ^([0-9a-fA-F]+)$ ]]; then
NUMENTRY=$( efibootmgr |awk -v NUM="$(printf %04x 0x$1|tr '[:lower:]' '[:upper:]')" '{ if($1~NUM) print substr($1,5,4)}')
else
NUMENTRY=$(efibootmgr |awk -v LABEL="$1" '{ if(substr($0, index($0,$2))==LABEL) print substr($1,5,4)}')
@@ -122,17 +169,19 @@ fi
[ "$NUMENTRY" == "" ] && return $(ogRaiseError $OG_ERR_NOTFOUND "NVRAM entry '$1'")
-efibootmgr -B -b $NUMENTRY &>/dev/null
+for n in $NUMENTRY; do
+ efibootmgr -B -b $n &>/dev/null
+done
}
#/**
-# ogGetNvramCurrentEntry
-#@brief Muestra la entrada del gestor de arranque (NVRAM) que ha inciado el equipo.
-#@return Orden de las entradas
+# ogNvramGetCurrent
+#@brief Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo.
+#@return Entrada con la que se ha iniciado el equipo
#@exception OG_ERR_NOTUEFI UEFI no activa.
#*/ ##
-function ogGetNvramCurrentEntry () {
+function ogNvramGetCurrent () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -144,16 +193,36 @@ fi
# Si no es equipo UEFI salir con error
ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
-efibootmgr| awk '{if ($1~/BootCurrent/) bootentry=$2; if ($1~bootentry) printf "%s %s %s\n", gensub(/^0{1,3}/,"",1,substr($1,5,4))," ", substr($0, index($0,$2))}'
+efibootmgr| awk -v bootentry=99999 '{if ($1~/BootCurrent/) bootentry=$2; if ($1~bootentry) printf "%s %s %s\n", gensub(/^0{1,3}/,"",1,substr($1,5,4))," ", substr($0, index($0,$2))}'
}
-# ogGetNvramOrder
-#@brief Muestra el orden de las entradas de la NVRAM
+# ogNvramGetNext
+#@brief Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque.
+#@return Entrada que se utilizará en el próximo arranque
+#@exception OG_ERR_NOTUEFI UEFI no activa.
+#*/ ##
+function ogNvramGetNext () {
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME" \
+ "$FUNCNAME"
+ return
+fi
+
+# Si no es equipo UEFI salir con error
+ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
+
+efibootmgr|awk '{ if ($1 == "BootNext:") print $2}'
+}
+
+
+# ogNvramGetOrder
+#@brief Muestra el orden de las entradas del gestor de arranque (NVRAM)
#@return Orden de las entradas
#@exception OG_ERR_NOTUEFI UEFI no activa.
#*/ ##
-function ogGetNvramOrder (){
+function ogNvramGetOrder () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME" \
@@ -169,12 +238,12 @@ efibootmgr|awk '{ if ($1 == "BootOrder:") print $2}'
#/**
-# ogGetNvramTimeout
+# ogNvramGetTimeout
#@brief Muestra el tiempo de espera del gestor de arranque (NVRAM)
#@return Timeout de la NVRAM
#@exception OG_ERR_NOTUEFI UEFI no activa.
#*/ ##
-function ogGetNvramTimeout (){
+function ogNvramGetTimeout () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME" \
@@ -238,7 +307,7 @@ EOT
#/**
-# ogInactiveNvramEntry
+# ogNvramInactiveEntry
#@brief Inactiva entrada de la NVRAM identificada por la etiqueta o el orden
#@param Num_order_entry | Label_entry Número de orden o la etiqueta de la entrada a borrar.
#@return (nada)
@@ -246,7 +315,7 @@ EOT
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
#@exception OG_ERR_NOTUEFI UEFI no activa.
#*/ ##
-function ogInactiveNvramEntry () {
+function ogNvramInactiveEntry () {
local NUMENTRY
# Si se solicita, mostrar ayuda.
@@ -264,7 +333,7 @@ fi
ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
# Distingo si es número de orden o etiqueta
-if [[ $1 =~ ^([0-9a-FA-F]+)*$ ]]; then
+if [[ $1 =~ ^([0-9a-fA-F]+)$ ]]; then
NUMENTRY=$( efibootmgr |awk -v NUM="$(printf %04x 0x$1|tr '[:lower:]' '[:upper:]')" '{ if($1~NUM) print substr($1,5,4)}')
else
NUMENTRY=$(efibootmgr |awk -v LABEL="$1" '{ if(substr($0, index($0,$2))==LABEL) print substr($1,5,4)}')
@@ -277,12 +346,12 @@ efibootmgr -A -b $NUMENTRY &>/dev/null
#/**
-# ogListNvramEntry
+# ogNvramList
#@brief Lista las entradas de la NVRAN (sólo equipos UEFI)
#@return Entradas de la NVRAM con el formato: orden etiqueta [* (si está activa) ]
#@exception OG_ERR_NOTUEFI UEFI no activa.
#*/ ##
-function ogListNvramEntry () {
+function ogNvramList () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -355,6 +424,7 @@ esac
#@param int_nfilesys nº de orden del sistema de archivos
#@param REPO|CACHE repositorio
#@param str_imgname nombre de la imagen
+#@return (nada)
#@exception OG_ERR_FORMAT Formato incorrecto.
#@exception OG_ERR_NOTFOUND No encontrado fichero de información de la imagen (con uuid)
#*/ ##
@@ -423,6 +493,7 @@ fi
#@param int_nfilesys nº de orden del sistema de archivos
#@param REPO|CACHE repositorio
#@param str_imgname nombre de la imagen
+#@return (nada)
#@exception OG_ERR_FORMAT formato incorrecto.
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
#*/ ##
@@ -485,7 +556,45 @@ EOT
#/**
-# ogSetNvramOrder
+# ogNvramSetNext
+#@brief Configura el próximo arranque con la entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el orden.
+#@param Num_order_entry | Label_entry Número de orden o la etiqueta de la entrada a borrar.
+#@return (nada)
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@exception OG_ERR_NOTUEFI UEFI no activa.
+#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
+#*/ ##
+function ogNvramSetNext () {
+local NUMENTRY
+
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME [ Num_order_entry | Label_entry ] " \
+ "$FUNCNAME 2" \
+ "$FUNCNAME \"Windows Boot Manager\""
+ return
+fi
+
+# Error si no se recibe 1 parámetro.
+[ $# -eq 1 ] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME [ Num_order_entry | Label_entry ]" || return $?
+
+# Si no es equipo UEFI salir con error
+ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
+
+# Distingo si es número de orden o etiqueta
+if [[ $1 =~ ^([0-9a-fA-F]+)$ ]]; then
+ NUMENTRY=$( efibootmgr |awk -v NUM="$(printf %04x 0x$1|tr '[:lower:]' '[:upper:]')" '{ if($1~NUM) print substr($1,5,4)}')
+else
+ NUMENTRY=$(efibootmgr |awk -v LABEL="$1" '{ if(substr($0, index($0,$2))==LABEL) print substr($1,5,4)}')
+fi
+
+[ "$NUMENTRY" == "" ] && return $(ogRaiseError $OG_ERR_NOTFOUND "NVRAM entry '$1'")
+
+efibootmgr -n $NUMENTRY &>/dev/null
+}
+
+#/**
+# ogNvramSetOrder
#@brief Configura el orden de las entradas de la NVRAM
#@param Orden de las entradas separadas por espacios
#@return (nada)
@@ -493,7 +602,7 @@ EOT
#@exception OG_ERR_NOTUEFI UEFI no activa.
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado (entrada NVRAM).
#*/ ##
-function ogSetNvramOrder (){
+function ogNvramSetOrder () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME Num_order1 [ Num_order2 ] ... " \
@@ -508,7 +617,7 @@ fi
ogIsEfiActive || ogRaiseError $OG_ERR_NOTUEFI || return $?
# Comprobamos que sean números
-[[ "$@" =~ ^([0-9a-fA-F ]+)*$ ]] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME Num_order1 [ Num_order2 ] ..." || return $?
+[[ "$@" =~ ^([0-9a-fA-F ]+)$ ]] || ogRaiseError $OG_ERR_FORMAT "$FUNCNAME Num_order1 [ Num_order2 ] ..." || return $?
# Entradas de la NVRAM actuales
NUMENTRYS=$(efibootmgr|awk '{ if ($1~/Boot[0-9a-fA-F]+/) printf "0%s ", substr($1,5,4)}')
@@ -527,7 +636,7 @@ efibootmgr -o ${ORDER#,} &>/dev/null
#/**
-# ogSetNvramTimeout
+# ogNvramSetTimeout
#@brief Configura el tiempo de espera de la NVRAM
#@param Orden de las entradas separadas por espacios
#@return (nada)
@@ -535,7 +644,7 @@ efibootmgr -o ${ORDER#,} &>/dev/null
#@exception OG_ERR_FORMAT formato incorrecto.
#@exception OG_ERR_NOTFOUND fichero o dispositivo no encontrado.
#*/ ##
-function ogSetNvramTimeout (){
+function ogNvramSetTimeout () {
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME int_Timeout (seg)" \
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index 45fe5e97..92e97598 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -91,7 +91,6 @@ MSG_SPEED="Velocidad"
# Mensajes de descripción breve de las funciones de la API.
MSG_HELP_ogAclFilter="Extrae las acl de los ficheros de la diferencial"
-MSG_HELP_ogActiveNvramEntry="Activa entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el orden."
MSG_HELP_ogAddCmd="Añade comandos al fichero creado por la función ogInstalMiniSetup."
MSG_HELP_ogAddRegistryKey="Añade una nueva clave al registro de Windows."
MSG_HELP_ogAddRegistryValue="Añade un nuevo valor al registro de Windows."
@@ -134,7 +133,6 @@ MSG_HELP_ogCreatePartitions="Define la estructura de particiones de un disco."
MSG_HELP_ogCreatePartitionTable="Genera una tabla de particiones en caso de que no sea valida."
MSG_HELP_ogCreateTorrent=""
MSG_HELP_ogCopyEfiBootLoader="Copia el cargador de arranque desde la partición EFI a la de sistema."
-MSG_HELP_ogDeleteNvramEntry="Borra entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el número de orden."
MSG_HELP_ogDeleteCache="Elimina la partición de caché local."
MSG_HELP_ogDeleteFile="Borra un fichero de un espacio de almacenamiento."
MSG_HELP_ogDeletePartitionTable="Elimina la tabla de particiones del disco"
@@ -176,9 +174,6 @@ MSG_HELP_ogGetMacAddress="Devuelve la dirección Ethernet del cliente."
MSG_HELP_ogGetMountImageDir="Devuelve el directorio de montaje de una imagen."
MSG_HELP_ogGetMountPoint="Devuelve el directorio donde está montado un sistema de archivos local."
MSG_HELP_ogGetNetInterface=""
-MSG_HELP_ogGetNvramCurrentEntry="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
-MSG_HELP_ogGetNvramOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogGetNvramTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado."
MSG_HELP_ogGetOsUuid=""
MSG_HELP_ogGetOsVersion="Devuelve el tipo y la versión de un sistema operativo instalado."
@@ -207,7 +202,19 @@ MSG_HELP_ogGrubUefiConf="Genera el fichero grub.cfg de la partición EFI."
MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones."
MSG_HELP_ogHidePartition="Oculta una partición de Windows."
MSG_HELP_ogIdToType="Devuelve el mnemónico asociado al identificador de tipo de partición."
-MSG_HELP_ogInactiveNvramEntry="Inactiva entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el orden."
+MSG_HELP_ogNvramActiveEntry="Configura a activa entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramAddEntry="Crea nueva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramDeleteEntry="Borra entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetCurrent="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
+MSG_HELP_ogNvramGetNext="Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque."
+MSG_HELP_ogNvramGetOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramInactiveEntry="Configura a inactiva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramList="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
+MSG_HELP_ogNvramSetNext="Configura el próximo arranque con la entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
+MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado."
MSG_HELP_ogInstallFirstBoot="Crea un archivo que se ejecutará en el primer arranque de Windows."
MSG_HELP_ogInstallLaunchDaemon="Instala un archivo que se ejecutará en el arranque de macOS."
MSG_HELP_ogInstallLinuxClient="$MSG_OBSOLETE."
@@ -228,7 +235,6 @@ MSG_HELP_ogIsWritable="Comprueba si un sistema de archivos está montado con per
MSG_HELP_ogLinuxBootParameters="Devuelve los parámetros de arranque de un sistema operativo Linux instalado."
MSG_HELP_ogListHardwareInfo="Lista el inventario de dispositivos del cliente."
MSG_HELP_ogListLogicalPartitions=""
-MSG_HELP_ogListNvramEntry="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
MSG_HELP_ogListPartitions="Lista la estructura de particiones de un disco."
MSG_HELP_ogListPrimaryPartitions=""
MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una clave del registro de Windows."
@@ -272,8 +278,6 @@ MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)."
MSG_HELP_ogRestoreUuidPartitions="Restaura los uuid de las particiones y la tabla de particiones."
MSG_HELP_ogSaveImageInfo="Crea un fichero con la información de la imagen."
MSG_HELP_ogSetLinuxName=""
-MSG_HELP_ogSetNvramOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogSetNvramTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogSetPartitionActive="Establece el número de partición activa de un disco."
MSG_HELP_ogSetPartitionId="Modifica el tipo de una partición física usando el mnemónico del tipo."
MSG_HELP_ogSetPartitionSize="Establece el tamaño de una partición."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index 7455b585..b21a270f 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -94,7 +94,6 @@ MSG_SPEED="Speed"
# API functions messages.
MSG_HELP_ogAclFilter="Draws ACL files from differential image."
-MSG_HELP_ogActiveNvramEntry="Activates a boot loader (NVRAM) entry identified by label or order number."
MSG_HELP_ogAddCmd="Adds commands to file created by ogInstalMiniSetup."
MSG_HELP_ogAddRegistryKey="Adds new Windows registry key."
MSG_HELP_ogAddRegistryValue="Adds new Windows registry value."
@@ -137,7 +136,6 @@ MSG_HELP_ogCreatePartitions="Creates disk partition table."
MSG_HELP_ogCreatePartitionTable="Creates partition table, if necessary."
MSG_HELP_ogCreateTorrent=""
MSG_HELP_ogCopyEfiBootLoader="Copy the boot loader from the EFI partition to system partition."
-MSG_HELP_ogDeleteNvramEntry="Deletes a boot loader (NVRAM) entry identified by label or order number."
MSG_HELP_ogDeleteCache="Deletes local cache partition."
MSG_HELP_ogDeleteFile="Deletes file from storage."
MSG_HELP_ogDeletePartitionTable="Deletes disk table partition"
@@ -179,9 +177,6 @@ MSG_HELP_ogGetMacAddress="Returns client Ethernet address."
MSG_HELP_ogGetMountImageDir="Returns mounting directory of image."
MSG_HELP_ogGetMountPoint="Returns directory of local file system mount point."
MSG_HELP_ogGetNetInterface=""
-MSG_HELP_ogGetNvramCurrentEntry="Displays the bootloader (NVRAM) entry that was started by the computer."
-MSG_HELP_ogGetNvramOrder="Displays the bootloader (NVRAM) entries order."
-MSG_HELP_ogGetNvramTimeout="Displays the bootloader (NVRAM) timeout."
MSG_HELP_ogGetOsType="Returns installed OS type."
MSG_HELP_ogGetOsUuid="Returns OS UUID"
MSG_HELP_ogGetOsVersion="Returns OS version."
@@ -210,7 +205,6 @@ MSG_HELP_ogGrubUefiConf="Generates the grub.cfg file of the EFI partition."
MSG_HELP_ogHelp="Shows functions help messages."
MSG_HELP_ogHidePartition="Hides Windows partition."
MSG_HELP_ogIdToType="Returns partition type identifier."
-MSG_HELP_ogInactiveNvramEntry="Inactivates a boot loader (NVRAM) entry identified by label or order number."
MSG_HELP_ogInstallFirstBoot="Creates file to run on first Windows boot."
MSG_HELP_ogInstallLaunchDaemon="Installs file to run on MACos boot."
MSG_HELP_ogInstallLinuxClient="$MSG_OBSOLETE."
@@ -254,6 +248,18 @@ MSG_HELP_ogMountCdrom="Mounts default optical drive."
MSG_HELP_ogMountFs=$MSG_HELP_ogMount
MSG_HELP_ogMountImage="Mounts synchronizable image"
MSG_HELP_ogMount="Mounts file system and returns mount point."
+MSG_HELP_ogNvramActiveEntry="Sets active a bootloader (NVRAM) entry."
+MSG_HELP_ogNvramAddEntry="Creates new entry in bootloader (NVRAM)."
+MSG_HELP_ogNvramDeleteEntry="Deletes a bootloader (NVRAM) entry."
+MSG_HELP_ogNvramGetCurrent="Displays the bootloader (NVRAM) entry that was started by the computer."
+MSG_HELP_ogNvramGetNext="Displays the bootloader (NVRAM) entry for the boot next."
+MSG_HELP_ogNvramGetOrder="Displays the bootloader (NVRAM) entries order."
+MSG_HELP_ogNvramGetTimeout="Displays the bootloader (NVRAM) timeout."
+MSG_HELP_ogNvramInactiveEntry="Sets inactive bootloader (NVRAM) entry."
+MSG_HELP_ogNvramList="Lists bootloader (NVRAM) entries, by staring actives ones."
+MSG_HELP_ogNvramSetNext="Set the bootloader (NVRAM) entry for the boot next."
+MSG_HELP_ogNvramSetOrder="Sets the bootloader (NVRAM) entries order."
+MSG_HELP_ogNvramSetTimeout="Sets the bootloader (NVRAM) timeout."
MSG_HELP_ogRaiseError="Displays and registers error messages and returns code."
MSG_HELP_ogReduceFs="Reduces file system size to minimum."
MSG_HELP_ogReduceImage="Reduces image size."
@@ -274,8 +280,6 @@ MSG_HELP_ogRestoreMbrImage="Restores boot sector image (MBR)."
MSG_HELP_ogRestoreUuidPartitions="Restores UUID of partitions and partition table."
MSG_HELP_ogSaveImageInfo="Creates the image information file."
MSG_HELP_ogSetLinuxName=""
-MSG_HELP_ogSetNvramOrder="Configures the bootloader (NVRAM) entries order."
-MSG_HELP_ogSetNvramTimeout="Configures the bootloader (NVRAM) timeout."
MSG_HELP_ogSetPartitionActive="Sets active partition number of disk."
MSG_HELP_ogSetPartitionId="Changes partition ID using mnemonic."
MSG_HELP_ogSetPartitionSize="Sets partition size."
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index d188c24a..27d0cd64 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -91,7 +91,6 @@ MSG_SPEED="Velocidad"
# Mensajes de descripción breve de las funciones de la API.
MSG_HELP_ogAclFilter="Extrae las acl de los ficheros de la diferencial"
-MSG_HELP_ogActiveNvramEntry="Activa entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el orden."
MSG_HELP_ogAddCmd="Añade comandos al fichero creado por la función ogInstalMiniSetup."
MSG_HELP_ogAddRegistryKey="Añade una nueva clave al registro de Windows."
MSG_HELP_ogAddRegistryValue="Añade un nuevo valor al registro de Windows."
@@ -136,7 +135,6 @@ MSG_HELP_ogCreateTorrent=""
MSG_HELP_ogCopyEfiBootLoader="Copia el cargador de arranque desde la partición EFI a la de sistema."
MSG_HELP_ogDeleteCache="Elimina la partición de caché local."
MSG_HELP_ogDeleteFile="Borra un fichero de un espacio de almacenamiento."
-MSG_HELP_ogDeleteNvramEntry="Borra entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el número de orden."
MSG_HELP_ogDeletePartitionTable="Elimina la tabla de particiones del disco"
MSG_HELP_ogDeleteRegistryKey="Borra una clave vacía del registro de Windows."
MSG_HELP_ogDeleteRegistryValue="Borra un valor del registro de Windows."
@@ -176,9 +174,18 @@ MSG_HELP_ogGetMacAddress="Devuelve la dirección Ethernet del cliente."
MSG_HELP_ogGetMountImageDir="Devuelve el directorio de montaje de una imagen."
MSG_HELP_ogGetMountPoint="Devuelve el directorio donde está montado un sistema de archivos local."
MSG_HELP_ogGetNetInterface=""
-MSG_HELP_ogGetNvramCurrentEntry="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
-MSG_HELP_ogGetNvramOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogGetNvramTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramActiveEntry="Configura a activa entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramAddEntry="Crea nueva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramDeleteEntry="Borra entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetCurrent="Muestra la entrada del gestor de arranque (NVRAM) que ha iniciado el equipo."
+MSG_HELP_ogNvramGetNext="Muestra la entrada del gestor de arranque (NVRAM) que se utilizará en el próximo arranque."
+MSG_HELP_ogNvramGetOrder="Muestra el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramGetTimeout="Muestra el tiempo de espera del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramInactiveEntry="Configura a inactiva entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramList="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
+MSG_HELP_ogNvramSetNext="Configura el próximo arranque con la entrada del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
+MSG_HELP_ogNvramSetTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogGetOsType="Devuelve el tipo de un sistema operativo instalado."
MSG_HELP_ogGetOsUuid="Devuelve el UUID de un sistema operativo"
MSG_HELP_ogGetOsVersion="Devuelve el tipo y la versión de un sistema operativo instalado."
@@ -207,7 +214,6 @@ MSG_HELP_ogGrubUefiConf="Genera el fichero grub.cfg de la partición EFI."
MSG_HELP_ogHelp="Muestra mensajes de ayudas para las funciones."
MSG_HELP_ogHidePartition="Oculta una partición de Windows."
MSG_HELP_ogIdToType="Devuelve el mnemónico asociado al identificador de tipo de partición."
-MSG_HELP_ogInactiveNvramEntry="Inactiva entrada del gestor de arranque (NVRAM) identificada por la etiqueta o el orden."
MSG_HELP_ogInstallFirstBoot="Crea un archivo que se ejecutará en el primer arranque de Windows."
MSG_HELP_ogInstallLaunchDaemon="Instala un archivo que se ejecutará en el arranque de macOS."
MSG_HELP_ogInstallLinuxClient="$MSG_OBSOLETE."
@@ -228,7 +234,6 @@ MSG_HELP_ogIsWritable="Comprueba si un sistema de archivos está montado con per
MSG_HELP_ogLinuxBootParameters="Devuelve los parámetros de arranque de un sistema operativo Linux instalado."
MSG_HELP_ogListHardwareInfo="Lista el inventario de dispositivos del cliente."
MSG_HELP_ogListLogicalPartitions="Lista las particiones lógicas de un disco"
-MSG_HELP_ogListNvramEntry="Lista las entradas del gestor de arranque (NVRAN) marcando con un asterisco las activas"
MSG_HELP_ogListPartitions="Lista la estructura de particiones de un disco."
MSG_HELP_ogListPrimaryPartitions="Lista las particiones primarias de un disco"
MSG_HELP_ogListRegistryKeys="Lista los nombres de las subclaves incluidas en una clave del registro de Windows."
@@ -272,8 +277,6 @@ MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)."
MSG_HELP_ogRestoreUuidPartitions="Restaura los uuid de las particiones y la tabla de particiones."
MSG_HELP_ogSaveImageInfo="Crea un fichero con la información de la imagen."
MSG_HELP_ogSetLinuxName=""
-MSG_HELP_ogSetNvramOrder="Configura el orden de las entradas del gestor de arranque (NVRAM)."
-MSG_HELP_ogSetNvramTimeout="Configura el tiempo de espera del gestor de arranque (NVRAM)."
MSG_HELP_ogSetPartitionActive="Establece el número de partición activa de un disco."
MSG_HELP_ogSetPartitionId="Modifica el tipo de una partición física usando el mnemónico del tipo."
MSG_HELP_ogSetPartitionSize="Establece el tamaño de una partición."
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 1ecf8ac9..cf3980db 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -70,9 +70,10 @@ case "$OSTYPE" in
# Cambiar nombre en sistemas Windows.
HOST=${HOST:-"pc"}
ogSetWindowsName $1 $2 "$HOST"
- # Si es UEFI copio el cargador de arranque a la partición EFI
+ # Si es UEFI copio el cargador de arranque a la partición EFI e instalo rEFInd.
if ogIsEfiActive; then
ogRestoreEfiBootLoader $1 $2
+ ogRefindInstall
else
# Configurar el boot sector de la partición Windows.
ogFixBootSector $1 $2
@@ -94,6 +95,8 @@ case "$OSTYPE" in
ogConfigureFstab $1 $2
## Instala (no configura) el codigo de arranque del Grub en la partición (no lo configura, se mantiene el original de la imagen)
ogGrubInstallPartition $1 $2
+ # Si es UEFI instalo rEFInd.
+ ogIsEfiActive && ogRefindInstall
# Eliminar el antiguo cliente de Linux.
[ -n "$(find $MNTDIR/usr/sbin $MNTDIR/sbin $MNTDIR/usr/local/sbin -name ogAdmLnxClient -print)" ] && ogUninstallLinuxClient $1 $2
# Configurar nuevo agente OGAgent.