При нажатии кнопки выключения или по halt -p не сохраняется состояние 
виртуальной машины (скрипт пытается отработать это видно в консоли но через 90 
секунд принудительно убивается с записью в логе ниже) но если ручками в консоли 
остановить через скрипт /usr/local/etc/rc.d/vboxheadless stop то все отлично 
сохраняется.

п.с. при включении питания в консоли видно как гость стартует.

/var/log/message
Dec 24 15:22:34 hostel rc.shutdown: 90 second watchdog timeout expired. 
Shutdown terminated.
Dec 24 15:22:34 hostel init: /bin/sh on /etc/rc.shutdown terminated abnormally, 
going to single user mode
Dec 24 15:22:34 hostel syslogd: exiting on signal 15

root@hostel:/home/ss25 # uname -a
FreeBSD hostel 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r244482M: Thu Dec 20 10:11:00 
EET 2012     root@hostel:/usr/obj/usr/src/sys/HOSTEL  i386

root@hostel:/home/ss25 # pkg_version -v | grep virtual
virtualbox-ose-4.1.22               =   up-to-date with port
virtualbox-ose-kmod-4.1.22          =   up-to-date with port

/etc/rc.conf
vboxheadless_enable="YES"
#vboxheadless_user="root"
vboxheadless_machines="Win2k3"
vboxheadless_delay="1"
vboxheadless_stop="savestate"
vboxheadless_Win2k3_flags="-n -m 5900 -o пароль"

/usr/local/etc/rc.d/vboxheadless
vboxheadless_stop()
{
        local machine mpidfile pid vmname vmuser vmstop vmdelay

        echo "Saving states for Virtual Machines:"
        for machine in ${vboxheadless_machines}; do
                mpidfile="${pidbase}_${machine}.pid"
                pid=$(check_pidfile $mpidfile $command)
                eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
                eval 
vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
                eval 
vmstop="\${vboxheadless_${machine}_stop:-${vboxheadless_stop}}"
                eval 
vmdelay="\${vboxheadless_${machine}_delay:-${vboxheadless_delay}}"

                /usr/bin/printf "%25s " "${vmname}"

                if [ -n "${pid}" ]; then
                        /bin/sleep ${vmdelay}
                        /usr/bin/su -m ${vmuser} -c "/usr/local/bin/VBoxManage 
controlvm '${vmname}' ${vmstop} >/dev/null" 2>/dev
                        wait_for_pids $pid >/dev/null
                        echo "Stopped"
                else
                        echo "Not running?"
                fi
        done
}

Ответить