====== VirtualBox 가상 머신 자동시작 ======
* [[https://kifarunix.com/autostart-virtualbox-vms-on-system-boot-on-linux/|AutoStart VirtualBox VMs on System Boot on Linux - kifarunix.com]]
* [[https://wdmbr.wordpress.com/2018/12/14/how-to-set-your-virtualbox-vm-to-automatically-startup/|How To Set Your VirtualBox VM to Automatically Startup – WDMbr]] : 종료방식도 지정
* [[https://linux.m2osw.com/autostart-virtualbox-vms|Autostart Virtualbox VMs in Ubuntu 18.04 | The Linux Page]]
===== 가상머신의 자동 종료(shutdown) =====
* 시스템 종료(Shutdown)시 행동은 ''vboxdrv'' 서비스가 관장한다. ''/etc/default/virtualbox'' 에 다음 내용을 넣는다.
SHUTDOWN_USERS="myuserid myuserid2" # VBOX 사용자 ID를 공백으로 구분하여 넣음
SHUTDOWN=acpibutton # 종료 방식 결정 : poweroff, acpibutton, savestate
* 이제 운영체제 종료시 실행 중인 가상 머신을 자동으로 정상 종료 시켜준다.
===== vbox-service-template =====
* [[https://github.com/bkidwell/vbox-service-template|vbox-service-template]] 원하는 가상머신을 띄우는 서비스를 만드는 템플릿
* 템플릿을 ''/etc/init.d/vbox-가상머신이름'' 으로 복사한다.
* 파일 편집
* ''# Provides: vbox-service-template'' 부분을 ''# Provides: vbox-가상머신이름''으로 변경한다.
* ''VM_OWNER'' 값을 가상 머신 소유자 ID로 변경한다.
* ''VM_STOP'' 값을 지정한다.
* 서비스 등록
sudo update-rc.d vbox-가상머신이름 defaults 90
# 등록 취소
sudo update-rc.d -f vbox-가상머신이름 remove
* 자동 시작시 Network이 안 잡히는 문제가 있다. 아직 원인 모름.
===== VirtualBox 4.2 autostart script =====
* VirtualBox 4.2 부터 Linux, Solaris, MacOS X 등에서 가상머신을 부팅시 자동시작하는 서비스가 생겼다.
* 2013년 겨울 현재, 잘 작동 안하는 듯.
* 아래 예에서 ''myuserid''를 가상머신 보유자 ID로 가정한다.
* [[http://lifeofageekadmin.com/how-to-set-your-virtualbox-vm-to-automatically-startup/|Linux/MacOS 등에서 가상머신 자동시작]]
* [[http://www.virtualbox.org/manual/ch09.html#autostart|Chapter 9. Advanced topics # Autostart]]
* ''/etc/default/virtualbox'' 편집
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
* ''/etc/vbox/autostart.cfg'' 편집
# Default policy is to deny starting a VM, the other option is "allow".
default_policy = deny
# Create an entry for each user allowed to run autostart
myuserid = {
allow = true
startup_delay = 10 # 가상머신 10초 지연해서 시작
}
* 권한 부여
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox # vboxusers 들이 모두 쓰기 권한이 돼야하고 Sticky 필요.
* 사용자를 vboxusers 그룹에 추가
groups myuserid
# myuserid 사용자의 그룹 목록 출력
sudo usermod -G [출력된모든group 목록을 띄어쓰기없이 쉼표로구분하여나열],vboxusers myuserid
# 예) usermod -G sudo,adm,cdrom,sudo,dip,plugdev,ppadmin,sambashare,vboxusers myuserid
* 자신의 가상머신을 자동으로 띄우고자 하는 사용자는 사용자 가상머신에 자동시작 옵션추가
vboxmanage setproperty autostartdbpath /etc/vbox
vboxmanage modifyvm [원하는VM이름] --autostart-enabled on
# 자동시작에서 제거
vboxmanage modifyvm [원하는VM이름] --autostart-enabled off
# 이 명령 실행 후에 /etc/vbox 에 myuserid.start 파일이 생성된다.
* 서비스 실행해보기
sudo service vboxautostart-service start