summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'client/shared/scripts')
-rwxr-xr-xclient/shared/scripts/bootOsCustom.template4
-rwxr-xr-xclient/shared/scripts/configureOs17
-rw-r--r--client/shared/scripts/configureOsCustom.template4
-rwxr-xr-xclient/shared/scripts/createImage18
-rwxr-xr-xclient/shared/scripts/grubSyntax31
5 files changed, 64 insertions, 10 deletions
diff --git a/client/shared/scripts/bootOsCustom.template b/client/shared/scripts/bootOsCustom.template
index b457fde4..06046526 100755
--- a/client/shared/scripts/bootOsCustom.template
+++ b/client/shared/scripts/bootOsCustom.template
@@ -50,11 +50,11 @@ case "$OSTYPE" in
#echo "[40] 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
+ # [ $(ogGetPartitionType $DISK $PART) == "HNTFS" -o $(ogGetPartitionType $DISK $PART) == "WIN-RESERV" ] && 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
+ # [ "$(ogGetPartitionType $DISK $i)" == NTFS -o "$(ogGetPartitionType $DISK $i)" == "WINDOWS" ] && ogHidePartition $DISK $i
# fi
#done
;;
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 5e02ec4c..2e529c9e 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -32,6 +32,9 @@
#@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: 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
#*/ ##
# Carga el configurador del engine y los parámetros de red.
@@ -67,8 +70,14 @@ case "$OSTYPE" in
# 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 e instalo rEFInd.
+ if ogIsEfiActive; then
+ ogRestoreEfiBootLoader $1 $2
+ ogRefindInstall
+ 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:\
@@ -82,8 +91,12 @@ case "$OSTYPE" in
fi
;;
Linux) # Postconfiguración de GNU/Linux.
+ # 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
+ # 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.
diff --git a/client/shared/scripts/configureOsCustom.template b/client/shared/scripts/configureOsCustom.template
index 66be3c63..f1c8e2a6 100644
--- a/client/shared/scripts/configureOsCustom.template
+++ b/client/shared/scripts/configureOsCustom.template
@@ -39,8 +39,8 @@ case "$OSTYPE" in
#ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
;;
Linux) # Postconfiguración de GNU/Linux.
- ##OPCIONAL: Configurar el FSTAB. En esta versión solo autoconfigura la partición SWAP
- #ogConfigureFstab $1 $2
+ ##OPCIONAL Para UEFI: cambia el UUID de la partición (para tener dos linux en un equipo)
+ #ogUuidChange $DISK $PART
##OPCIONAL Limpiar dispositivos reconocidos previamente
#ogCleanLinuxDevices $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)
diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage
index 65da156b..7b99afe2 100755
--- a/client/shared/scripts/createImage
+++ b/client/shared/scripts/createImage
@@ -35,6 +35,9 @@
#@version 1.1.0 - Se muestra el espacio necesario para alojar la imagen y el disponible (ticket #771)
#@author Irina Gomez - ETSII Universidad de Sevilla
#@date 2017-03-28
+#@version 1.1.1 - #802 Equipos EFI: se guarda el cargador de arranque y UUID de las particiones
+#@author Irina Gomez - ETSII Universidad de Sevilla
+#@date 2019-01-08
#*/ ##
# Test 1. crear una imagen en un REPO sin espacio libre.
@@ -123,10 +126,20 @@ ogEcho log session "[20] $MSG_HELP_ogCheckFs $PART $SIZEFS (KB)"
ogUnmount $1 $2 2>/dev/null
ogCheckFs $1 $2 || exit $(ogRaiseError $OG_ERR_PARTITION "ogCheckFs $1 $2" && echo $?)
+# Si es UEFI copio el cargador de arranque a la partición
+OSTYPE="$(ogGetOsType $1 $2)"
+if ogIsEfiActive && [ "$OSTYPE" == "Windows" ]; then
+ ogEcho log session "[25] $MSG_HELP_ogCopyEfiBootLoader"
+ ogCopyEfiBootLoader $1 $2
+ echo ogSaveImageInfo $1 $2 "$REPO" "$4"
+ ogSaveImageInfo $1 $2 "$REPO" "$4"
+
+fi
+
# Evaluar variable de engine.cfg para reducir el sistema de archivos en la creacion
if [ "$IMGREDUCE" == "TRUE" ]
then
- ogEcho log session "[30]: $MSG_HELP_ogReduceFs"
+ ogEcho log session "[30] $MSG_HELP_ogReduceFs"
ogReduceFs $1 $2 &>> $OGLOGCOMMAND || exit $(ogRaiseError $OG_ERR_REDUCEFS "$1 $2"; echo $?)
NEWSIZEFS=$(ogGetFsSize $1 $2)
TIMEAUX=$[SECONDS-TIME1]
@@ -135,7 +148,7 @@ fi
# Renombrar el fichero de imagen si ya existe.
if [ -f "$IMGFILE" ]; then
- ogEcho log session "[10] $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"."
+ ogEcho log session "[35] $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"."
mv "$IMGFILE" "$IMGFILE.ant"
mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null
mv "$IMGFILE.sum" "$IMGFILE.sum.ant" 2>/dev/null
@@ -170,4 +183,3 @@ TIME=$[SECONDS-TIME1]
ogEcho log session "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s"
ogEcho log session " FileSystem $PART with $NEWSIZEFS KB data created onto file-image as $4 and used $IMGSIZE KB across DFS $ogprotocol"
ogEcho log session " Image-file $4 metada: $IMGOS"
-
diff --git a/client/shared/scripts/grubSyntax b/client/shared/scripts/grubSyntax
index 209cfc00..aa1adb2e 100755
--- a/client/shared/scripts/grubSyntax
+++ b/client/shared/scripts/grubSyntax
@@ -7,6 +7,8 @@ set -e
#basado en scripts del paquete de grub
#Antonio Doblas Viso
#Universidad de Málaga
+#@version 1.1.1 - En los parámetros del kernel se sustituye el UUID por el dispositivo.
+#@version 1.1.1 - Detecta cargador de Windows en directorio Part-xx-yy dentro de ESP (#802 #888)
DISK=
PART=
@@ -31,7 +33,13 @@ fi
grub_probe=${grub_probe:-$OGBIN/grub-probe1.99_$(arch)}
#librerias del osProber para kernel antiguos: detecta e identifica sistema operativos.
-grub-install --version | grep 1.99 && cp -r /opt/opengnsys/lib/os-probes/* /usr/lib/os-probes/
+if grub-install --version | grep 1.99 ; then
+ cp -r /opt/opengnsys/lib/os-probes/* /usr/lib/os-probes/
+else
+ # Librería os-probe para cargador de microsoft en dir part-x-y (uefi)
+ OSPROBE_MS_PART="/opt/opengnsys/lib/os-probes/mounted/efi/31part-x-y"
+ [ -f $OSPROBE_MS_PART ] && cp $OSPROBE_MS_PART /usr/lib/os-probes/mounted/efi
+fi
#Autoreconocimiento del ogLive en cache
@@ -341,6 +349,24 @@ EOF
}
EOF
;;
+ efi)
+
+ found_other_os=1
+ EFIPATH=${DEVICE#*@}
+ DEVICE=${DEVICE%@*}
+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
+ cat << EOF
+menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows --class os \$menuentry_id_option 'osprober-efi-$(grub_get_device_id "${DEVICE}")' {
+EOF
+ save_default_entry | sed -e "s/^/\t/"
+#ADV prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
+ OG_prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
+
+ cat <<EOF
+ chainloader ${EFIPATH}
+}
+EOF
+ ;;
linux)
KERNELPARAM=""
#linuxprobed detecta todos los kernels de una partición.
@@ -358,6 +384,9 @@ EOF
LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
+ # En los parámetros cambiamos el UUID por el valor de LROOT
+ UUID=$(blkid -s UUID -o value $LROOT)
+ LPARAMS="$(echo $LPARAMS | sed "s|UUID=$UUID|$LROOT|g")"
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi