summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2015-07-13 09:11:23 +0000
committerramon <ramongomez@us.es>2015-07-13 09:11:23 +0000
commit16360e4385c8d8f92ab16208980df03844524e90 (patch)
treedbbf33f3a59fc5ce593a00f65d514624aaa9870b /client
parent6dedc02d07367fa19b2283d09099403588dcf64d (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-xclient/engine/Boot.lib27
-rwxr-xr-xclient/shared/scripts/bootOs6
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 "$@"