#!/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.