diff options
author | Irina Gómez <irinagomez@us.es> | 2019-04-25 11:22:44 +0200 |
---|---|---|
committer | Irina Gómez <irinagomez@us.es> | 2019-04-25 11:22:44 +0200 |
commit | b0a7050136d336391db2f38718e3f34f4ab9a99f (patch) | |
tree | 15bbcac8ca792604897ff2dddcf9c5aa13ec4c71 | |
parent | 528ff4ca943d3f439d18d6d467c699329bece768 (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-x | client/engine/Boot.lib | 6 | ||||
-rw-r--r-- | client/engine/UEFI.lib | 167 | ||||
-rw-r--r-- | client/shared/etc/lang.ca_ES.conf | 22 | ||||
-rw-r--r-- | client/shared/etc/lang.en_GB.conf | 20 | ||||
-rw-r--r-- | client/shared/etc/lang.es_ES.conf | 21 | ||||
-rwxr-xr-x | client/shared/scripts/configureOs | 5 |
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. |