2018年2月26日 星期一

在 Debian 的環境下,設定 VirtualBox 自動啟動 VMs

一、Edit virtualbox config
    # vim.tiny /etc/default/virtualbox
    修改內容為

    VBOXAUTOSTART_DB=/etc/vbox
    VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg

二、Edit auto start config
    # vim.tiny /etc/vbox/autostart.cfg
    修改內容為

    default_policy = allow
    user = {
    allow = true
    startup_delay = 10
    }
三、更改目錄群組權限
    # chgrp vboxusers /etc/vbox
    # chmod 1775 /etc/vbox

四、Set auto start DB path
    $ VBoxManage setproperty autostartdbpath /etc/vbox
五、Register VMs
    $ VBoxManage registervm /home/user/VirtualBox\ VMs/QA\ servers/VM-QA1/VM-QA1.vbox
    $ VBoxManage registervm /home/user/VirtualBox\ VMs/QA\ servers/VM-QA2/VM-QA2.vbox
    $ VBoxManage registervm /home/user/VirtualBox\ VMs/QA\ servers/VM-QA3/VM-QA3.vbox
    $ VBoxManage registervm /home/user/VirtualBox\ VMs/QA\ servers/VM-Linux/VM-Linux.vbox

六、Create a userid.start user.stop  file in /etc/vbox directory
    $ VBoxManage modifyvm VM-QA1 --autostart-enabled on --autostop-type acpishutdown
    $ VBoxManage modifyvm VM-QA2 --autostart-enabled on --autostop-type acpishutdown
    $ VBoxManage modifyvm VM-QA3 --autostart-enabled on --autostop-type acpishutdown
    $ VBoxManage modifyvm VM-Linux --autostart-enabled on --autostop-type acpishutdown

七、Restart the vboxautostart-service
    # /etc/init.d/rcvboxautostart-service stop
    # /etc/init.d/rcvboxautostart-service start
八、Reboot PC for test

備註:
    1. # 開頭為以 root 權限執行的命令
    2. $ 開頭為以 user 權限執行的命令
    3. 使用者名稱為 user,請先確定 /etc/group 的 virturlboxuers 群組裡面是否有 "user" 包含在    
        裡面。
    4. 如果執行的時候有被檔案被鎖定的情況發生,通常是因為錯用 root 權限執行 user 的指令造
        成。請先關閉VMs的執行之後,以 root 權限更改 /home/user/VirtualBox\ VMs/QA\ 
        servers/VM-QA1/VM-QA1.vbox 的 owner 與 group 為 user.user 。
    5. 對單一 VM 開機
        $VBoxManage startvm VM-QA1
    6. 對單一 VM 關機
        $ vboxmanage controlvm VM-QA1 acpipowerbutton
    7. 對全部機器開機
        # /etc/init.d/rcvboxautostart-service start
    8. 對全部機器關機
        # /etc/init.d/rcvboxautostart-service stop