VirtualBox
VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL) version 2.
Storage
Attach “dynamic” disk to SATA controller
ISO
Attach ISO image to IDE controller
VirtualBox :: Installation
Copy user@workstation:~$ sudo apt install libqt5x11extras5
user@workstation:~$ sudo apt install libsdl1.2debian
user@workstation:~$ sudo apt install rdesktop
user@workstation:~$ wget https://download.virtualbox.org/virtualbox/5.1.30/virtualbox-5.1_5.1.30-118389~Ubuntu~xenial_amd64.deb
user@workstation:~$ sudo dpkg -i virtualbox-5.1_5.1.30-118389~Ubuntu~xenial_amd64.deb
user@workstation:~$ wget https://download.virtualbox.org/virtualbox/5.1.30/Oracle_VM_VirtualBox_Extension_Pack-5.1.30-118389.vbox-extpack
user@workstation:~$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.30-118389.vbox-extpack
Copy user@workstation:~$ VBoxManage -v
5.1.30r118389
user@workstation:~$ VBoxManage list vms
user@workstation:~$
Copy user@workstation:~$ VBoxManage list ostypes | grep Debian
ID: Debian
Description: Debian (32-bit)
ID: Debian_64
Description: Debian (64-bit)
user@workstation:~$
VirtualBox :: Image Repository
Copy user@workstation:~$ mkdir Virtualization
user@workstation:~$ mkdir Virtualization/Images/
user@workstation:~$ cd Virtualization/Images/
user@workstation:~/Virtualization/Images$ wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
user@workstation:~/Virtualization/Images$ wget https://people.debian.org/~aurel32/qemu/amd64/debian_wheezy_amd64_standard.qcow2
user@workstation:~/Virtualization/Images$ wget http://releases.ubuntu.com/16.04.4/ubuntu-16.04.4-server-amd64.iso
user@workstation:~/Virtualization/Images$ cd ..
user@workstation:~/Virtualization$
VirtualBox :: Virtual Machine
VBoxManage modifyvm "$vm" --ostype Linux_64 --cpus "$cpus" --pae on --longmode on --x2apic on --largepages off
Create and register.
Copy user@workstation:~/Virtualization$ VBoxManage createvm --name Titanium --ostype Linux_64 --register
Virtual machine 'Titanium' is created and registered.
UUID: c496716a-2411-4975-bbcb-64ca38a8d728
Settings file: '/home/user/VirtualBox VMs/Titanium/Titanium.vbox'
user@workstation:~/Virtualization$
Copy user@workstation:~/Virtualization$ VBoxManage showvminfo Titanium
Name: Titanium
Groups: /
Guest OS: Other Linux (64-bit)
UUID: c496716a-2411-4975-bbcb-64ca38a8d728
Config file: /home/user/VirtualBox VMs/Titanium/Titanium.vbox
Snapshot folder: /home/user/VirtualBox VMs/Titanium/Snapshots
Log folder: /home/user/VirtualBox VMs/Titanium/Logs
Hardware UUID: c496716a-2411-4975-bbcb-64ca38a8d728
Memory size: 128MB
Page Fusion: off
VRAM size: 8MB
CPU exec cap: 100%
HPET: off
Chipset: piix3
Firmware: BIOS
Number of CPUs: 1
PAE: on
Long Mode: on
Triple Fault Reset: off
APIC: on
X2APIC: on
CPUID Portability Level: 0
CPUID overrides: None
Boot menu mode: message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI: on
IOAPIC: on
BIOS APIC mode: APIC
Time offset: 0ms
RTC: local time
Hardw. virt.ext: on
Nested Paging: on
Large Pages: off
VT-x VPID: on
VT-x unr. exec.: on
Paravirt. Provider: Default
Effective Paravirt. Provider: KVM
State: powered off (since 2018-03-11T23:02:49.000000000)
Monitor count: 1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Tracing Enabled: off
Allow Tracing to Access VM: off
Tracing Configuration:
Autostart Enabled: off
Autostart Delay: 0
Default Frontend:
NIC 1: MAC: 0800270FB63F, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings: MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1: disabled
UART 2: disabled
UART 3: disabled
UART 4: disabled
LPT 1: disabled
LPT 2: disabled
Audio: enabled (Driver: PulseAudio, Controller: AC97, Codec: STAC9700)
Clipboard Mode: disabled
Drag and drop Mode: disabled
VRDE: disabled
USB: disabled
EHCI: disabled
XHCI: disabled
USB Device Filters:
<none>
Bandwidth groups: <none>
Shared folders: <none>
Video capturing: not active
Capture screens: 0
Capture file: /home/user/VirtualBox VMs/Titanium/Titanium.webm
Capture dimensions: 1024x768
Capture rate: 512 kbps
Capture FPS: 25
Guest:
Configured memory balloon size: 0 MB
user@workstation:~/Virtualization$
VirtualBox :: Hardware Settings :: Memory
VBoxManage modifyvm "$vm" --memory "$mem"
Set memory.
Copy user@workstation:~/Virtualization$
user@workstation:~/Virtualization$ VBoxManage modifyvm Titanium --memory 2048
user@workstation:~/Virtualization$ VBoxManage showvminfo Titanium | grep "Memory size"
Memory size: 2048MB
VirtualBox :: Hardware Settings :: Network
VBoxManage modifyvm "$vm" --cableconnected1 on --nic1 hostonly --nictype1 82540EM --hostonlyadapter1 vboxnet0 VBoxManage modifyvm "$vm" --cableconnected2 on --nic2 intnet --nictype2 82540EM --intnet2 intnet-management --nicpromisc2 allow-all --nicbootprio2 1 VBoxManage modifyvm "$vm" --cableconnected3 on --nic3 intnet --nictype3 virtio --intnet3 intnet-data1 --nicpromisc3 allow-all VBoxManage modifyvm "$vm" --cableconnected4 on --nic4 intnet --nictype4 virtio --intnet4 intnet-data2 --nicpromisc4 allow-all
Set network.
Copy user@workstation:~/Virtualization$ VBoxManage modifyvm Titanium --bridgeadapter1 enp0s25
user@workstation:~/Virtualization$ VBoxManage modifyvm Titanium --nic1 bridged
user@workstation:~/Virtualization$ VBoxManage showvminfo Titanium | grep "NIC 1"
NIC 1: MAC: 0800270FB63F, Attachment: Bridged Interface 'enp0s25', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
VirtualBox :: Hardware Settings :: Others
Display
VBoxManage modifyvm "$vm" --vram 16
Audio
VBoxManage modifyvm "$vm" --audio none
Boot Order
VBoxManage modifyvm "$vm" --boot1 dvd --boot2 disk --boot3 net --boot4 none
Other
VBoxManage modifyvm "$vm" --ioapic on --rtcuseutc on
VM Specific Serial
VBoxManage modifyvm "$vm" --uart1 0x3F8 4 --uartmode1 server "/tmp/serial_$vm" set_vrde "$vm"
Set others.
VirtualBox :: Storage
VBoxManage createmedium disk --filename "${machine_folder}/${vm}/${vm}-disk1.vdi" --size $CONTROLLER_DISK1 --format VDI VBoxManage createmedium disk --filename "${machine_folder}/${vm}/${vm}-disk2.vdi" --size $CONTROLLER_DISK2 --format VDI VBoxManage storagectl "$vm" --name SATA --add sata --controller IntelAhci --portcount 3 --hostiocache on --bootable on VBoxManage storageattach "$vm" --storagectl SATA --port 0 --device 0 --type hdd --medium "${machine_folder}/${vm}/${vm}-disk1.vdi" VBoxManage storageattach "$vm" --storagectl SATA --port 1 --device 0 --type hdd --medium "${machine_folder}/${vm}/${vm}-disk2.vdi" VBoxManage storageattach "$vm" --storagectl SATA --port 2 --device 0 --type dvddrive --medium emptydrive
Create “dynamic” disk.
Copy user@workstation:~/Virtualization$ VBoxManage createhd --filename VirtualBox\ VMs/Titanium/Titanium.vdi --size 18000 --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: def6c875-df58-4db4-8baa-4b947f4b89c7
Create SATA controller.
Copy user@workstation:~/Virtualization$ VBoxManage storagectl Titanium --name "SATA Controller" --add sata --controller IntelAhci
Attach “dynamic” disk to SATA controller.
Copy user@workstation:~/Virtualization$ VBoxManage storageattach Titanium --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium VirtualBox\ VMs/Titanium/Titanium.vdi
VirtualBox :: ISO
Create IDE controller.
Copy user@workstation:~/Virtualization$ VBoxManage storagectl Titanium --name "IDE Controller" --add ide --controller PIIX4
Attach ISO image to IDE controller.
Copy user@workstation:~/Virtualization$ VBoxManage storageattach Titanium --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium Images/ubuntu-16.04.4-server-amd64.iso
VirtualBox :: Virtual Machine
VBoxManage startvm "$1" --type headless rdesktop-vrdp -a 16 -N "127.0.0.1:$rdeport" &
Run.
Copy user@workstation:~/Virtualization$ VBoxManage modifyvm Titanium --vrde on
user@workstation:~/Virtualization$ VBoxManage modifyvm Titanium --vrdemulticon on --vrdeport 3390
user@workstation:~/Virtualization$ VBoxHeadless --startvm Titanium
Copy user@workstation:~/Virtualization$ rdesktop 127.0.0.1:3390
Copy user@workstation:~/Virtualization$ VBoxManage storageattach Titanium --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium none