#!/bin/bash #/** # bootOsCustom #@brief Plantilla para script de configuración personalizada de sistema operativo restaurado. #@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 # 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) NAME="$(ogGetHostname)" NAME=${NAME:-"pc"} OSTYPE=$(ogGetOsType $DISK $PART) case "$OSTYPE" in Windows) ## Borrar marcas de arrranque de todos los Windows instalados en el disco. #echo "[30] Borrar marcas de arrranque de todos los Windows instalados en el disco." #for (( i=1; i<=$(ogGetPartitionsNumber $1); i++ )); do # [ "$(ogGetOsType $1 $i)" == "Windows" ] && ogMount $1 $i &>/dev/null #done #rm -f /mnt/*/ogboot.* ## Mostrar las particiones NTFS de sistema (dos opciones) ## Opción 1: SIN ocultar las demás. #echo "[40] Mostrar y activar particion de Windows $PART." #[ $(ogGetPartitionType $1 $2) == "HNTFS" ] && ogUnhidePartition $1 $2 ## Opción 2: Ocultamos las demás. #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" -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 -o "$(ogGetPartitionType $DISK $i)" == "WINDOWS" ] && ogHidePartition $DISK $i # fi #done ;; Linux) ## Modificar el nombre del equipo #echo "[30] Asignar nombre Linux \"$NAME\"." #ETC=$(ogGetPath $1 $2 /etc) #[ -d "$ETC" ] && echo "$NAME" >$ETC/hostname 2>/dev/null ## Sustituir UUID o LABEL por su dispositivo en definición de sistema de archivo raíz. #if [ -f "$ETC/fstab" ]; then # echo "[40] 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 ## 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