#!/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 "$@"
