Install Headless VirtualBox
Posted: 06 Jun 2021, 09:55
บน Host --> install virtualbox
บน Host --> create vm
#เพิ่ม network adapter (ตัวอย่างแบบ bridged ไปยัง host adapter ens10f1)
#ต้องการ delete network adapter nic2
#วิธีแสดง list nic ของ vm
บน Guest install Guest Additions
วิธีทำ port forwarding จาก host ไปยัง vm
ในตัวอย่าง ทำ port forwarding จาก host port 30022 ไปยัง guest port 22
วิธีแสดงรายละเอียด vm
Code: Select all
sudo apt install virtualbox virtualbox-ext-pack
sudo systemctl status vboxdrv
sudo usermod -aG vboxusers $USER
Code: Select all
mkdir /data/vms
vboxmanage createvm --ostype Ubuntu_64 --basefolder /data/vms --register --name testvm
vboxmanage modifyvm testvm --memory 8192 --cpus 4
#ถ้าจะใช้ nat network ไม่ต้องใช้คำสั่งนี้
vboxmanage modifyvm testvm --nic1 bridged --nictype1 82545EM --bridgeadapter1 enp0s0
#enp0s0 คือ host interface ที่จะ bridged กับ testvm
vboxmanage modifyvm testvm --vrde on --vrdeport 33890
vboxmanage createhd --filename /data/vms/testvm/testvm_disk1.vdi --format VDI --size 819200
#size เป็น MB
vboxmanage storagectl testvm --name "SATA" --add sata
vboxmanage storageattach testvm --storagectl SATA --port 0 --type hdd --medium /data/vms/testvm/testvm_disk1.vdi
vboxmanage storageattach testvm --storagectl SATA --port 15 --type dvddrive --medium /data/temp/ubuntu-20.04-server.iso
#วิธี detach storage
vboxmanage storageattach testvm --storagectl SATA --port 0 --medium emptydrive
#หาก run host ผ่าน firewall ให้ enable vrdeport
iptables -A INPUT -p tcp --dport 33890 -j ACCEPT
#list vms
vboxmanage list vms
#list running vms
vboxmanage list runningvms
#start vm
vboxmanage startvm testvm --type headless
#in case of vm being locked on startvm, run this command to reset "locked" status.
vboxmanage startvm testvm --type emergencystop
#power off vm
vboxmanage controlvm testvm poweroff
#delete vm
vboxmanage unregistervm testvm --delete
#list hdds
vboxmanage list hdds
#assign new uuid to hdd
vboxmanage internalcommands sethduuid <file.vdi>
#remove hdd
vboxmanage closemedium disk <uuid> --delete
#remove bridge interface
brctl delbr enp0s0
#enp0s0 คือ host interface ที่ bridged กับ testvm
Code: Select all
vboxmanage modifyvm testvm --nic2 bridged --bridgeadapter2 ens10f1
Code: Select all
vboxmanage modifyvm testvm --nic2 none
Code: Select all
vboxmanage showvminfo testvm | grep "NIC"
Code: Select all
sudo apt update
sudo apt install virtualbox-guest-dkms
วิธีทำ port forwarding จาก host ไปยัง vm
ในตัวอย่าง ทำ port forwarding จาก host port 30022 ไปยัง guest port 22
Code: Select all
vboxmanage modifyvm testvm --natpf1 "guestssh,tcp,,30022,,22"
Code: Select all
vboxmanage showvminfo testvm