La causa de ello es que al cerrar la máquina virtual ofrece 3 opciones: Apagar, Enviar Señal de Apagado y Guardar Estado. Si el usuario daba a "Guardar Estado" luego la máquina no podía volver a abrirse a no ser que se descartase ese snapshot creado al Guardar el Estado. Pienso que la causa podría ser que la misma máquina es compartida entre varios usuarios de ldap y puede que el que uno la guarde y otro la abra no está bien visto por VirtualBox.
Da igual. Mis instrucciones son claras: las máquinas se deben apagar, no guardar. Si alguien las guarda, descartaremos lo guardado. Y para ello nada mejor que modificar el script de arranque para que lo haga el solito:
# cat /opt/VirtualBox VMs/run_vbox
#!/bin/bash
#Poniendo esto /etc/environment
#export VBOX_USER_HOME="/mnt/VirtualBox VMs/VirtualBox"
#en el arranque lo tendremos para todos los usuarios. Maquinas virtuales en local.
#Si cierran la ventana a lo bruto se hace un shutdown de la máquina. Esto al .vbox de
#la máquina
# ExtraDataItem name="GUI/LastCloseAction" value="Shutdown"
machine="Win10"
running=$(VBoxManage list runningvms | grep $machine)
if [ -n "$running" ]
then
zenity --error --text "La máquina $machine ya está funcionando"
else
#Verificamos si está en estado "saved" y si es asi, lo descartamos. No se puede arrancar desde aqui si está en dicho estado.
(VBoxManage showvminfo $machine | grep -e '^State.*saved.*' 2>&1 > /dev/null) && VBoxManage discardstate $machine
#Si cierran la ventana a lo bruto se hace un shutdown de la máquina. Esto al .vbox de la máquina
# ExtraDataItem name="GUI/LastCloseAction" value="Shutdown"
#o bien VBoxManage...
VBoxManage setextradata $machine "GUI/LastCloseAction" "Shutdown"
VBoxManage sharedfolder remove "$machine" --name "compartido"
VBoxManage sharedfolder add "$machine" --name "compartido" --hostpath "$HOME" --automount
VirtualBox --startvm $machine
fi
En negrita está la parte divertida, con:(VBoxManage showvminfo $machine | grep -e '^State.*saved.*' 2>&1 > /dev/null)
Miramos el estado de la máquina y vemos si corresponde a "Saved". Si es así, con:VBoxManage discardstate $machine
descartamos el guardado previo y ya se puede arrancar a continuación la máquina.Y con esto ya tenemos otro obstáculo saltado. Sigo teniendo problemas con la distribución a toda pastilla de imágenes VDI con udpcast, pero todo se andará y podré contar como va.
No hay comentarios:
Publicar un comentario