summaryrefslogtreecommitdiffstats
path: root/client/shared
diff options
context:
space:
mode:
authorIrina Gómez <irinagomez@us.es>2019-01-29 11:26:10 +0100
committerIrina Gómez <irinagomez@us.es>2019-01-29 11:26:10 +0100
commit20e5aa9e4558004d6d46fddd033f04d59afe61a0 (patch)
tree2b6a38de99fc49ca2b91dba0dbc5e6f51a8bfbdf /client/shared
parent7dc06be98d438dc20709a764103bf384cbd5dd7a (diff)
#802 #889 configureOs can relocale Windows in different partition. ogWindowsBootParameters: include the bootpartition to configure BCD
Diffstat (limited to 'client/shared')
-rwxr-xr-xclient/shared/scripts/configureOs58
-rw-r--r--client/shared/scripts/configureOsCustom.template2
-rwxr-xr-xclient/shared/scripts/deployImage2
3 files changed, 14 insertions, 48 deletions
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 3170a994..388cc0f6 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -5,8 +5,6 @@
#@brief Script para realizar la configuracion del sistema operativo restaurado.
#@param 1 disco
#@param 2 particion
-#@param 3 Repositorio (CACHE, REPO o dirección IP)
-#@param 4 Nombre canónico de la imagen (sin extensión)
#@return
#@TODO comprobar que el tipo de particion corresponde con el sistema de archivos.
#@exception OG_ERR_FORMAT # 1 formato incorrecto.
@@ -34,7 +32,7 @@
#@version 1.0.6b - llamadas opcionales para mejoras varias. Descomentar la instruccion para su activacion. ogConfigureFstab
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2016-11-03
-#@version 1.1.1 - Equipos UEFI: cambia uuid de las particiones y restaura el cargador de arranque (Windows) (tickect #802)
+#@version 1.1.1 - Equipos UEFI: para Windows copia cargador de arranque a partición UEFI, para linux configura particion ESP en fstab. (ticket #802 #889 #890)
#@author Irina Gomez, ETSII Universidad de Sevilla
#@date 2019-01-08
#*/ ##
@@ -43,36 +41,6 @@
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
[ -f $DEVICECFG ] && source $DEVICECFG
-PROG="$(basename $0)"
-
-# Para Windows en equipos EFI son necesarios cuatro parámetros
-OSTYPE="$(ogGetOsType $1 $2)"
-if [ ogIsEfiActive -a "$OSTYPE" == "Windows" ]; then
- if [ $# -lt 4 ]; then
- ogRaiseError session $OG_ERR_FORMAT
- ogHelp "$PROG:" \
- "$PROG ndisco nparticion [ REPO|CACHE|IPSERVER ] [imagename]" \
- "$PROG 1 1" \
- "$PROG 1 2 REPO Windows (UEFI)"
- exit $OG_ERR_FORMAT
- fi
-
- REPO="${3^^}"
- REPO=${REPO:-"REPO"}
- IMGNAME="$4"
- # Cambio de repositorio
- if [ "$REPO" == "$(ogGetIpAddress)" -o "$REPO" == "CACHE" ]; then
- REPO="CACHE"
- else
- ogCheckIpAddress "$REPO"
- if [ $? == 0 -o "$REPO" == "REPO" ]; then
- # Si falla el cambio -> salimos con error repositorio no valido
- ogChangeRepo $REPO ${OGUNIT} || exit $(ogRaiseError $OG_ERR_NOTFOUND "$REPO $OGUNIT"; echo $?)
- REPO="REPO"
- fi
- fi
-fi
-
# Si el sistema de archivos no esta extendido, ampliarlo al tamaño de su partición.
PARTSIZE=$(ogGetPartitionSize $1 $2) || exit $?
FSSIZE=$(ogGetFsSize $1 $2)
@@ -96,18 +64,21 @@ fi
HOST="$(ogGetHostname)"
# Post-configuración personalizada para cada tipo de sistema operativo.
+OSTYPE="$(ogGetOsType $1 $2)"
case "$OSTYPE" in
Windows) # Postconfiguración de Windows.
- # Si es UEFI pongo el UUID de la partición del modelo
- if ogIsEfiActive; then
- echo ogRestoreUuidPartitions $REPO $IMGNAME $1 $2
- ogRestoreUuidPartitions $REPO $IMGNAME $1 $2
- fi
# Cambiar nombre en sistemas Windows.
HOST=${HOST:-"pc"}
ogSetWindowsName $1 $2 "$HOST"
- # Configurar el boot sector de la partición Windows.
- ogFixBootSector $1 $2
+ # Si es UEFI copio el cargador de arranque a la partición EFI
+ if ogIsEfiActive; then
+ ogRestoreEfiBootLoader $1 $2
+ # Configurar el boot sector de la partición Windows.
+ ogFixBootSector $(ogGetEsp)
+ else
+ # Configurar el boot sector de la partición Windows.
+ ogFixBootSector $1 $2
+ fi
# Configurar el gestor de arranque de Windows XP/Vista/7.
ogWindowsBootParameters $1 $2
# Registrar en Windows que la partición indicada es su nueva unidad C:\
@@ -119,14 +90,9 @@ case "$OSTYPE" in
ogInstallMiniSetup $1 $2 postconf.cmd
ogUninstallWindowsClient $1 $2 postconf.cmd
fi
- # Si es UEFI copio el cargador de arranque a la partición EFI
- if ogIsEfiActive; then
- echo ogRestoreEfiBootLoader $1 $2
- ogRestoreEfiBootLoader $1 $2
- fi
;;
Linux) # Postconfiguración de GNU/Linux.
- # Configuro fstab: particion de Swap y si es UEFI la partición EFI.
+ # Configuro fstab: particion de Swap y si es UEFI además la partición EFI.
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
diff --git a/client/shared/scripts/configureOsCustom.template b/client/shared/scripts/configureOsCustom.template
index d5603a34..f1c8e2a6 100644
--- a/client/shared/scripts/configureOsCustom.template
+++ b/client/shared/scripts/configureOsCustom.template
@@ -28,7 +28,7 @@ IMGNAME="$4" # Nombre canónico de imagen (sin extensión).
# Nota: incluye llamada al script "configureOs" para realizar previamente una configuración estándar.
# Configurarción típica.
-configureOs "$DISK" "$PART" "$REPO" "$IMGNAME"
+configureOs "$1" "$2"
# Postconfiguración personalizada para cada tipo de sistema operativo.
OSTYPE="$(ogGetOsType $1 $2)"
case "$OSTYPE" in
diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage
index 59188f22..824da2af 100755
--- a/client/shared/scripts/deployImage
+++ b/client/shared/scripts/deployImage
@@ -220,7 +220,7 @@ if which configureOsCustom &>/dev/null; then
configureOsCustom "$DISK" "$PART" "$REPO" "$IMGNAME"
else
ogEcho log session "[90] $MSG_SCRIPTS_OS_CONFIGURE "
- configureOs "$DISK" "$PART" "$REPO" "$IMGNAME"
+ configureOs "$DISK" "$PART"
fi
TIME=$[SECONDS-TIME1]