summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2017-02-13 11:02:26 +0000
committeririna <irinagomez@us.es>2017-02-13 11:02:26 +0000
commit6963f4203933d6ec0303beea1ddb0f9ef0bb5c89 (patch)
treedf7763c98fbdeb8af52cb51f28d18274e45ad2b5 /client
parentb94293057025cc701871809077e749a9fdced7fb (diff)
#773 Se corrige bootOs para que llame al script bootOsCustom.template. bootOsCustom.template: El código personalizado se muestra comentado y con una descripción de lo que hace.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5189 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client')
-rwxr-xr-xclient/shared/scripts/bootOs27
-rwxr-xr-xclient/shared/scripts/bootOsCustom.template52
2 files changed, 48 insertions, 31 deletions
diff --git a/client/shared/scripts/bootOs b/client/shared/scripts/bootOs
index 103e7302..322f9b9c 100755
--- a/client/shared/scripts/bootOs
+++ b/client/shared/scripts/bootOs
@@ -1,5 +1,5 @@
#!/bin/bash
-# Scirpt de ejemplo para arancar un sistema operativo instalado.
+# Script de ejemplo para arancar un sistema operativo instalado.
# (puede usarse como base para el programa de arranque usado por OpenGNSys Admin).
PROG="$(basename $0)"
@@ -10,7 +10,7 @@ fi
# Comprobar errores.
PART=$(ogDiskToDev "$1" "$2") || exit $?
-ogMount $1 $2 || exit $?
+ogMount $1 $2 &>/dev/null || exit $?
echo "[0] Inicio del proceso de arranque."
NAME="$(ogGetHostname)"
@@ -24,11 +24,6 @@ if [ "$OSTYPE" == "Windows" ]; then
rm -f /mnt/*/ogboot.*
fi
-echo "[10] Desmontar todos los sistemas de archivos."
-sync
-for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
- ogUnmountAll $i &>/dev/null
-done
case "$OSTYPE" in
Windows)
echo "[30] Mostrar y activar particion de Windows $PART."
@@ -40,15 +35,25 @@ case "$OSTYPE" in
[ -d "$ETC" ] && echo "$NAME" >$ETC/hostname 2>/dev/null
if [ -f "$ETC/fstab" ]; then
# Sustituir UUID o LABEL por su dispositivo en definición de sistema de archivo raíz.
- echo "[50] Actaualizar fstab con particion raiz \"$PART\"."
+ echo "[50] Actualizar fstab con particion raiz \"$PART\"."
awk -v P="$PART " '{ if ($2=="/" && $1!~/^#/) {sub(/^.*$/, P, $1)}
print }' $ETC/fstab >/tmp/fstab
mv /tmp/fstab $ETC/fstab
fi
;;
esac
-echo "[70] Desmontar cache local."
+
+if which bootOsCustom &>/dev/null; then
+ echo "[60] Configuración personalizada del inicio."
+ bootOsCustom $@
+fi
+
+echo "[70] Desmontar todos los sistemas de archivos."
+sync
+for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
+ ogUnmountAll $i &>/dev/null
+done
+echo "[80] Desmontar cache local."
ogUnmountCache
echo "[90] Arrancar sistema operativo."
-#ogBoot "$@"
-
+ogBoot "$@"
diff --git a/client/shared/scripts/bootOsCustom.template b/client/shared/scripts/bootOsCustom.template
index b60762e7..5fe17221 100755
--- a/client/shared/scripts/bootOsCustom.template
+++ b/client/shared/scripts/bootOsCustom.template
@@ -5,39 +5,51 @@
#@param $1 nº de disco
#@param $2 nº de partición
#@warning Renombrar este fichero como "bootOsCustom" para personalizar el script estándar "bootOs".
+#@note La partición a inicializar debe estar montada
#**/
# CONFIGURAR: Partición de datos de Windows que no queremos ocultar
PARTDATA=0
PROG="$(basename $0)"
+# Control de errores
if [ $# -lt 2 ]; then
ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion"
exit $?
fi
-MNTDIR=$(ogMount $1 $2)
-OSTYPE=$(ogGetOsType $1 $2)
+# Parámetros obligatorios.
+DISK="$1" # Nº de disco.
+PART="$2" # Nº de partición.
+
+# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).
+
+# Paso 1: Adaptar el código de ejemplo para postconfiguración personalizada.
+# Nota: el script "bootOs" llama al script "bootOsCustom" después de realizar la operaciones de inicio estándar y antes de desmontar las particiones e iniciar el sistema operativo.
+
+
+MNTDIR=$(ogMount $DISK $PART)
+OSTYPE=$(ogGetOsType $DISK $PART)
case "$OSTYPE" in
Windows)
- # Mostrar las particiones NTFS de sistema y datos y ocultamos las demás.
- echo "[65] Activar particion de Windows $PART y ocultar las demás."
- for (( i=1; i<=$(ogGetPartitionsNumber $1); i++ )); do
- if [ $i == $2 -o $i == $PARTDATA ]; then
- [ $(ogGetPartitionType $1 $2) == "HNTFS" ] && ogUnhidePartition $1 $2
- # Activo la particion si no es de datos
- [ $i -ne $PARTDATA ] && ogSetPartitionActive $1 $i
- else
- [ "$(ogGetPartitionType $1 $i)" == NTFS ] && ogHidePartition $1 $i
- fi
- done
+ ## Mostrar las particiones NTFS de sistema y datos y ocultamos las demás.
+ #echo "[65] Activar particion de Windows $PART y ocultar las demás."
+ #for (( i=1; i<=$(ogGetPartitionsNumber $DISK); i++ )); do
+ # if [ $i == $PART -o $i == $PARTDATA ]; then
+ # [ $(ogGetPartitionType $DISK $PART) == "HNTFS" ] && ogUnhidePartition $1 $PART
+ # # Activo la particion si no es de datos
+ # [ $i -ne $PARTDATA ] && ogSetPartitionActive $DISK $i
+ # else
+ # [ "$(ogGetPartitionType $DISK $i)" == NTFS ] && ogHidePartition $DISK $i
+ # fi
+ #done
;;
Linux)
- # Cambiar claves usuarios, copiando fichero /etc/passwd
- # En el servidor el nuevo fichero debe situarse en el directorio del grupo:
- # /opt/opengnsys/images/groups/nombre_aula
- if [ -r $(ogGetGroupDir)/passwd ]; then
- echo "[65] Cambiar claves de usuarios."
- cp $(ogGetGroupDir)/passwd $MNTDIR/etc
- fi
+ ## Cambiar claves usuarios, copiando fichero /etc/passwd
+ ## En el servidor el nuevo fichero debe situarse en el directorio del grupo:
+ ## /opt/opengnsys/images/groups/nombre_aula
+ #if [ -r $(ogGetGroupDir)/passwd ]; then
+ # echo "[65] Cambiar claves de usuarios."
+ # cp $(ogGetGroupDir)/passwd $MNTDIR/etc
+ #fi
;;
esac