summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts/bootOs
blob: 3b569b3554fe69941eb1e4d59ced74dbdeaa0f3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
# Script de ejemplo para arancar un sistema operativo instalado.
# Nota: se usa como base para el programa de arranque de OpenGnsys Admin.

PROG="$(basename $0)"
if [ $# -lt 2 -o $# -gt 3 ]; then
    ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nfilesys [str_kernel str_initrd str_kernelparams]"
    exit $?
fi

# Comprobar errores.
PART=$(ogDiskToDev "$1" "$2") || exit $?
MNTDIR=$(ogMount $1 $2) || exit $?

echo "[0] Inicio del proceso de arranque."

# Si el equipo está hibernado chequeamos el f.s. y borramos el hiberfile (error cod.6)
mount |grep -q "$MNTDIR.*(rw"
if [ $? -ne 0 ]; then
    ogEcho log session "${MSG_WARNING}: $MSG_MOUNTREADONLY"
    ogUnmount $1 $2
    ogCheckFs $1 $2

    PART=$(ogDiskToDev "$1" "$2")
    mkdir -p $MNTDIR
    ntfs-3g -o remove_hiberfile $PART $MNTDIR
    ogEcho log session "Particion desbloqueada"

    ogUnmount $1 $2
    ogMount $1 $2
fi


if which bootOsCustom  &>/dev/null; then
    echo "[10] Configuración personalizada del inicio."
    bootOsCustom $@
fi

echo "[70] Desmontar todos los sistemas de archivos."
sync 
for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
    ogUnmountAll $i &>/dev/null
done
echo "[80] Desmontar cache local."
ogUnmountCache
echo "[90] Arrancar sistema operativo."
ogBoot "$@"