Load máy ảo VirtualBox (headless) khi khởi động hệ thống

Chương trình sau tự động load một máy ảo VirtualBox khi hệ thống startup ở trạng thái Headless (Không hiển thị giao diện).

Load máy ảo VirtualBox (headless) khi khởi động hệ thống
Hướng dẫn bật máy ảo VirtualBox (Headless) khi hệ thống khởi động

Do máy ảo được cài đặt dưới tư cách của user nên cần chỉ định rõ user nào đang sở hữu máy ảo VirtualBox tại biến VMUSER và tên của máy ảo tại VMNAME.

Máy ảo được khởi động kiểu Headless nên đương nhiên muốn truy cập thì phải mở giao diện của VirtualBox, điều này không có lợi nếu truy cập từ xa. Tôi thường thiết lập Static IP cho máy ảo và cấu hình giao diện mạng (Network Interface) là Bridge để nó hoạt động như một máy tính trong mạng LAN.

Tạo một startup script trong /etc/init.d như sau.

/etc/init.d/startvm

#! /bin/sh
### BEGIN INIT INFO
# Author:            Nguyen Hong Hai
# Provides:          startvm
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run a VirtualBox VM on startup
### END INIT INFO
 
# Please change these variables
VMUSER="icreativ"
VMNAME="Jessie Web Server"
 
case "$1" in
    start)
        echo "Starting ${VMNAME}..."
        sudo -H -b -u ${VMUSER} /usr/bin/VBoxVRDP -s "${VMNAME}"
        ;;
    stop)
        echo "Saving state of ${VMNAME}..."
        sudo -H -u  ${VMUSER} /usr/bin/VBoxManage controlvm "${VMNAME}" savestate
        ;;
    halt)
        echo "Turning off ${VMNAME}..."
        sudo -H -u  ${VMUSER} /usr/bin/VBoxManage controlvm "${VMNAME}" acpipowerbutton
        ;;
    *)
        echo "Usage: /etc/init.d/startvm {start|stop|halt}"
        exit 1
        ;;
esac
 
exit 0

Đăng ký service để tự động load khi khởi động.

$ sudo update-rc.d startvm defaults

Phản hồi về bài viết

Cùng thảo luận chút nhỉ!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.