93 lines
3.9 KiB
Bash
93 lines
3.9 KiB
Bash
#!/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
|
|
#@version 1.1.1 Soporta varios discos
|
|
#@date 2019/08/26
|
|
#**/
|
|
# CONFIGURAR: Partición de datos de Windows que no queremos ocultar (valor por defecto '0' no oculta nada)
|
|
DISKDATA=0
|
|
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).
|
|
DEVICE=$(ogDiskToDev "$DISK" "$PART") || exit $?
|
|
|
|
# Paso 1: Adaptar el código de ejemplo para arranque personalizado.
|
|
# 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) || exit $?
|
|
NAME="$(ogGetHostname)"
|
|
NAME=${NAME:-"pc"}
|
|
OSTYPE=$(ogGetOsType $DISK $PART)
|
|
|
|
case "$OSTYPE" in
|
|
Windows)
|
|
## Mostrar las particiones NTFS de sistema (dos opciones)
|
|
## Opción 1: SIN ocultar las demás.
|
|
#ogEcho log session "[40] Mostrar y activar particion de Windows $PART."
|
|
#[ $(ogGetPartitionType $DISK $PART) == "HNTFS" -o $(ogGetPartitionType $DISK $PART) == "WIN-RESERV" ] && ogUnhidePartition $DISK $PART
|
|
|
|
## Recorremos los distintos discos
|
|
#for DEVICE in $(ogDiskToDev); do
|
|
# d=$(ogDevToDisk $DEVICE)
|
|
|
|
# ## Mostrar las particiones NTFS de sistema (dos opciones)
|
|
# ## Opción 2: Ocultamos las demás.
|
|
# ogEcho log session "[40] Activar particion de Windows $PART y ocultar las demás."
|
|
# for (( i=1; i<=$(ogGetPartitionsNumber $d); i++ )); do
|
|
# if [ $d == $DISK -a $i == $PART ] || [ $d == $DISKDATA -a $i == $PARTDATA ]; then
|
|
# [ $(ogGetPartitionType $d $i) == "HNTFS" -o $(ogGetPartitionType $d $i) == "WIN-RESERV" ] && ogUnhidePartition $d $i
|
|
# else
|
|
# [ "$(ogGetPartitionType $d $i)" == NTFS -o "$(ogGetPartitionType $d $i)" == "WINDOWS" ] && ogHidePartition $d $i
|
|
# fi
|
|
# done
|
|
|
|
# ## Borrar marcas de arrranque de todos los Windows instalados en el disco.
|
|
# ogEcho log session "[30] Borrar marcas de arrranque de todos los Windows instalados en el disco."
|
|
# for (( i=1; i<=$(ogGetPartitionsNumber $d); i++ )); do
|
|
# [ "$(ogGetOsType $d $i)" == "Windows" ] && ogMount $d $i &>/dev/null
|
|
# done
|
|
# rm -f /mnt/*/ogboot.*
|
|
|
|
#done
|
|
;;
|
|
Linux)
|
|
## Modificar el nombre del equipo
|
|
#ogEcho log session "[30] Asignar nombre Linux \"$NAME\"."
|
|
#ETC=$(ogGetPath $DISK $PART /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
|
|
# ogEcho log session "[40] Actualizar fstab con particion raíz \"$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
|
|
# ogEcho log session "[65] Cambiar claves de usuarios."
|
|
# cp $(ogGetGroupDir)/passwd $MNTDIR/etc
|
|
#fi
|
|
;;
|
|
esac
|