diff options
author | ramon <ramongomez@us.es> | 2015-07-13 09:11:23 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2015-07-13 09:11:23 +0000 |
commit | 16360e4385c8d8f92ab16208980df03844524e90 (patch) | |
tree | dbbf33f3a59fc5ce593a00f65d514624aaa9870b /client | |
parent | 6dedc02d07367fa19b2283d09099403588dcf64d (diff) |
#717: Función {{{ogBoot}}} toma un 3er parámetro opcional que sustituye a la llamada a la función {{{ogLinuxBootParameters}}}; el script {{{bootOs}}} envía todos sus parámetros a {{{ogBoot}}}.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4661 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client')
-rwxr-xr-x | client/engine/Boot.lib | 27 | ||||
-rwxr-xr-x | client/shared/scripts/bootOs | 6 |
2 files changed, 19 insertions, 14 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib index 109c3048..aa6aaa1c 100755 --- a/client/engine/Boot.lib +++ b/client/engine/Boot.lib @@ -4,21 +4,23 @@ #@brief Librería o clase Boot #@class Boot #@brief Funciones para arranque y post-configuración de sistemas de archivos. -#@version 1.0.6 +#@version 1.1.0 #@warning License: GNU GPLv3+ #*/ #/** -# ogBoot int_ndisk int_npartition +# ogBoot int_ndisk int_nfilesys [str_krnlparams] #@brief Inicia el proceso de arranque de un sistema de archivos. #@param int_ndisk nº de orden del disco -#@param int_npartition nº de orden de la partición +#@param int_nfilesys nº de orden del sistema de archivos +#@param str_krnlparams parámetros de arranque del kernel (opcional) #@return (activar el sistema de archivos). #@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo. #@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar. #@exception OG_ERR_NOTOS La partición no tiene instalado un sistema operativo. +#@note En Linux, si no se indican los parámetros de arranque se detectan de la opción por defecto del cargador GRUB. #@note En Linux, debe arrancarse la partición del directorio \c /boot #@version 0.1 - Integración para OpenGnSys. - EAC: HDboot; BootLinuxEX en Boot.lib #@author Antonio J. Doblas Viso, Universidad de Malaga @@ -32,6 +34,9 @@ #@version 1.0.6 - Selección a partir de tipo de sistema operativo (en vez de S.F.) y arrancar Linux con /boot separado. #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2015-06-05 +#@version 1.1.0 - Nuevo parámetro opcional con opciones de arranque del Kernel. +#@author Ramon Gomez, ETSII Universidad de Sevilla +#@date 2015-07-15 #*/ ## function ogBoot () { @@ -40,12 +45,12 @@ local PART TYPE MNTDIR PARAMS KERNEL INITRD APPEND FILE LOADER f # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then - ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \ - "$FUNCNAME 1 1" + ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_nfilesys [str_kernelparams" \ + "$FUNCNAME 1 1" "$FUNCNAME 1 2 \"root=/dev/sda2 ro\"" return fi -# Error si no se reciben 2 parámetros. -[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $? +# Error si no se reciben 2 o 3 parámetros. +[ $# == 2 ] || [ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $? # Detectar tipo de sistema de archivos y montarlo. PART=$(ogDiskToDev $1 $2) || return $? @@ -55,8 +60,8 @@ MNTDIR=$(ogMount $1 $2) || return $? case "$TYPE" in Linux|Android) - # Obtiene los parámetros de arranque para Linux. - PARAMS=$(ogLinuxBootParameters $1 $2) + # Si no se indican, obtiene los parámetros de arranque para Linux. + PARAMS="${3:-$(ogLinuxBootParameters $1 $2)}" # Si no existe, buscar sistema de archivo /boot en /etc/fstab. if [ -z "$PARAMS" -a -e $MNTDIR/etc/fstab ]; then # Localizar S.F. /boot en /etc/fstab del S.F. actual. @@ -119,10 +124,10 @@ esac #/** -# ogGetWindowsName int_ndisk int_npartition +# ogGetWindowsName int_ndisk int_nfilesys #@brief Muestra el nombre del equipo en el registro de Windows. #@param int_ndisk nº de orden del disco -#@param int_npartition nº de orden de la partición +#@param int_nfilesys nº de orden del sistema de archivos #@return str_name - nombre del equipo #@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo. diff --git a/client/shared/scripts/bootOs b/client/shared/scripts/bootOs index 90e5006c..275bbc0d 100755 --- a/client/shared/scripts/bootOs +++ b/client/shared/scripts/bootOs @@ -3,8 +3,8 @@ # (puede usarse como base para el programa de arranque usado por OpenGNSys Admin). PROG="$(basename $0)" -if [ $# -ne 2 ]; then - ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion" +if [ $# -lt 2 -o $# gt 3 ]; then + ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nfilesys [kernelparams]" exit $? fi @@ -50,5 +50,5 @@ esac echo "[70] Desmontar cache local." ogUnmountCache echo "[90] Arrancar sistema operativo." -ogBoot $1 $2 +ogBoot "$@" |