82 lines
4.0 KiB
Bash
82 lines
4.0 KiB
Bash
#!/bin/bash
|
|
#/**
|
|
# configureOsCustom
|
|
#@brief Plantilla para scirpt de configuracion personalizada de sistema operativo restaurado.
|
|
#@param $1 nº de disco
|
|
#@param $2 nº de partición
|
|
#@param $3 Repositorio: CACHE, REPO o dirección IP (opcional)
|
|
#@param $4 Nombre canónico de la imagen sin extensión (opcional)
|
|
#@warning Renombrar este fichero como "configureOsCustom" para sustituir al script estándar "configureOs".
|
|
#@note Los parámetros disco y partición son obligatorios y opcionalmente puede recibir también el repositorio y la imagen usada para en el despliegue.
|
|
#**/
|
|
|
|
|
|
# Control de parámetros.
|
|
[ $# -eq 2 -o $# -eq 4 ] || ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: configureOsCustom int_ndisc int_npart [str_repo str_imgname]" || exit $?
|
|
|
|
# Parámetros obligatorios.
|
|
DISK="$1" # Nº de disco.
|
|
PART="$2" # Nº de partición.
|
|
# Parámetros opcionales.
|
|
REPO="${3^^}" # Repositorio (en mayúsculas).
|
|
IMGNAME="$4" # Nombre canónico de imagen (sin extensió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: incluye llamada al script "configureOs" para realizar previamente una configuración estándar.
|
|
|
|
# Configurarción típica.
|
|
configureOs "$1" "$2"
|
|
# Postconfiguración personalizada para cada tipo de sistema operativo.
|
|
OSTYPE="$(ogGetOsType $1 $2)"
|
|
case "$OSTYPE" in
|
|
Windows) # Postconfiguración de Windows.
|
|
# Descomentar la siguiente línea para cambiar usuario de inicio.
|
|
#ogSetWinlogonUser $1 $2 " "
|
|
# OPCIONAL: desactivar el chkdisk de windows tras la restauracion. Requiere configuracion previa en el engine.cfg
|
|
#ogLoadHiveWindows $1 $2; ogSetWindowsChkdisk $OGWINCHKDISK; ogUpdateHiveWindows
|
|
;;
|
|
Linux) # Postconfiguración de GNU/Linux.
|
|
##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)
|
|
#ogGrubInstallPartition $1 $2
|
|
## OPCIONAL: instala y configura el codigo de arranque del Grub en el MBR (no lo configura, se mantiene el original de la imagen)
|
|
#ogGrubInstallMbr $1 $2
|
|
## OPCIONAL: Instala y configura el Grub en el MBR y lo autoconfigura, entradas para los sitemas operativos, ademas al linux restaurado le añade los parmetros indicados.
|
|
#ogGrubInstallMbr $1 $2 TRUE "irqpoll pci=noacpi noresume quiet splash"
|
|
;;
|
|
MacOS) # Postconfiguración de Mac OS X.
|
|
# Programa de inicio que será ejecutado en el arranque de Mac OS X.
|
|
# NOTA: no modificar la línea siguiente.
|
|
cat << EOT | sed -n -e '/rm -f /r /dev/stdin' -e 1x -e '2,${x;p}' -e '${x;p}' $MNTDIR/var/root/postconfd.sh
|
|
|
|
### NOTA: descomentar las opciones deseadas.
|
|
# Activar Journaling en HFS+ (no usar si el cliente continua en OpenGnsys).
|
|
#diskutil enableJournal disk$[$1-1]s$2
|
|
# Pedir usuario y clave en pantalla de conexión.
|
|
#defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool yes
|
|
# No mostrar botón de cambio rápido de usuario.
|
|
#defaults write /Library/Preferences/.GlobalPreferences MultipleSessionEnabled -bool NO
|
|
# Bloquear escritorio, fondo, dock, etc del usuario "usuario".
|
|
#chflags uchange /Users/usuario/Library/Preferences/com.apple.desktop.plist
|
|
#chflags uchange /Users/usuario/Library/Preferences/com.apple.dock.plist
|
|
#chflags uchange /Users/usuario/Desktop
|
|
# Añadir usuario "usuario" a la lista de desarrolladores de Xcode.
|
|
#DevToolsSecurity --enable
|
|
#dscl . -append /Groups/_developer GroupMembership usuario
|
|
# Bajar volumen (valor entre 0 y 7).
|
|
#osascript -e 'set volume 1'
|
|
|
|
EOT
|
|
# NOTA: no modificar la línea anterior.
|
|
;;
|
|
esac
|
|
|
|
# Paso 2: Incluir código genérico de postconfiguración.
|
|
|