Virtualizace – VirtualBox

 Používám VirtualBox, jde o nástroj umožňující na fyzickém tzv. virtualizačním počítači běh více tzv. virtuálních počítačů, navíc i s různými operačními systémy současně.  VirtualBox může běžet jak na Linuxu tak i Windows a Mac OS. Má grafické konfigurační rozhraní, stejně tak se dá ovládat z příkazové řádky.

Domovské stránky: https://www.virtualbox.org/

 Nároky na hostující virtualizační počítač jsou hlavně kapacitní a rychlostní, to dle nároků provozovaných virtuálních počítačů a jejich počtu.

  • Procesor podporující virtualizaci, minimálně 2 jádrový a s podporou Hyper-threading.
  • Dostatek operační paměti (dělí se pro jednotlivé běžící virtuální počítače).
  • Dostatek diskové a svižné kapacity

 

Upgrade Extension Pack příkazy

Poměrně častá chyba VirtualBoxu, který nedokáže si přes klikátka aktualizovat Extension Pack, odstranit předešlý. Dá se ho k odstranění donutit z příkazové řádky:

sudo vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"
vboxmanage list extpacks
sudo apt-get install --reinstall libecore1

a pak ze stránky https://www.virtualbox.org/wiki/Downloads  si stáhnout a nainstalovat nový, například:
sudo vboxmanage extpack install '/tmp/Oracle_VM_VirtualBox_Extension_Pack-6.1.12.vbox-extpack'

 

Zapnutí / Vypnutí virtuálu

Zapnutí

_VM=VM-TEST
vboxmanage startvm $_VM

Vypnutí sjetím systému

_VM=VM-TEST
vboxmanage controlvm $_VM acpipowerbutton

Vypnutí (natvrdo)

_VM=VM-TEST
vboxmanage controlvm $_VM poweroff

 

Export virtuálu do souboru

_VM=VM-TEST
vboxmanage export $_VM -o "$_VM.ova"

 

Zrušení virtuálu i s disky

_VM=VM-TEST
vboxmanage unregistervm $_VM --delete

 

Info o virtuálu

_VM=VM-TEST
vboxmanage showvminfo "$_VM"

 

Připojení se na „obrazovku“ terminálu

Povolení připojení se na obrazovku a nastartování virtuálnu v módu „headless“

_VM=VM-TEST
vboxmanage showvminfo $_VM |grep VRDE
vboxmanage modifyvm "$_VM" --vrde on
VBoxManage startvm $_VM -type headless

Nainstalovat prohlížeč rdesktop, v příkladu připojovaný na lokální port 3389 s rozlišením 1280×800 :
sudo apt install rdesktop
rdesktop -g 1280x800 localhost:3389

 

 

Zadefinování Zapnutí / Vypnutí virtuálu do systemd

Definice User=spravce Group=spravce jsou nutné mít aktuální, pod kým je virtuál definován. Parametr vypnutí acpipowerbutton je pro korektní sjetí systému, kdy musí být ve virtuálu nainstalovaná extensions podpora. Jinak pro vypnutí natvrdo je parametr poweroff. Upravit si i TimeOuty /bin/sleep 14 a TimeoutStopSec=15s čekání na sjetí systému.

/etc/systemd/system/VM-TEST.service

[Unit]
Description=VM-TEST
Requires=vboxdrv.service

[Service]
Type=oneshot
User=spravce
Group=spravce
ExecStart=/usr/bin/vboxmanage startvm "VM-TEST" --type vrdp
RemainAfterExit=yes
ExecStop=/usr/bin/vboxmanage controlvm "VM-TEST" acpipowerbutton ; /bin/sleep 14
TimeoutStopSec=15s

[Install]
WantedBy=multi-user.target

Zavedení definice

sudo systemctl daemon-reload

Aktivace startu virtuálu při startu hostujícího počítače

sudo systemctl enable VM-TEST

Deaktivace startu virtuálu při startu hostujícího počítače

sudo systemctl disable VM-TEST

Start virtuálu

sudo systemctl start VM-TEST

Stop virtuálu

sudo systemctl stop VM-TEST

ReStart virtuálu

sudo systemctl restart VM-TEST

Status virtuálu

sudo systemctl status VM-TEST

 

Příklad vytvoření testovacího virtuálu

Ikdyž je definice typu síťového adaptéru nepovinná, je vhodné ji uvést, aby virtuál při prvotním startu nehavaroval a nemusel se adaptér potvrdit v klikacím nastavení. Ve skriptu uzpůsobit _NET="enp4s0"

#!/bin/bash
#
#  SKRIPT PRO VYTVORENI TESTOVACIHO VIRTUALU PRO RAID
#  ==================================================
#

###  NAZEV VIRTUALU A SITOVEHO ADAPTERU  ###

_VM="VM-TEST"
_NET="enp4s0"

####  ZALOZENI VIRTUALU  ###

vboxmanage createvm --name $_VM --ostype "Ubuntu_64" --register

###  KONFIGURACE CPU, RAM, BOOTOVANI  ###

vboxmanage modifyvm $_VM --cpus 2 --accelerate3d off --vram 64 --memory 2048 --boot1 dvd --boot2 disk --boot3 none --boot4 none

###  SITOVY MOST S DEFINICI ADAPTERU  ###

vboxmanage modifyvm $_VM --nic1 bridged --bridgeadapter1 "$_NET"

###  KONFIGURACE DISKOVYCH PORTU  ###

vboxmanage storagectl $_VM --name "IDE" --add ide --controller PIIX4 
vboxmanage storagectl $_VM --name "SATA" --add sata --controller IntelAHCI --bootable on --portcount 6

###  VYTVORENI VIRTUALNICH DISKU  ###

vboxmanage createmedium disk --filename "$HOME/VirtualBox VMs/$_VM/${_VM}-0.vdi" --format VDI --size 8192
vboxmanage createmedium disk --filename "$HOME/VirtualBox VMs/$_VM/${_VM}-1.vdi" --format VDI --size 8192
vboxmanage createmedium disk --filename "$HOME/VirtualBox VMs/$_VM/${_VM}-2.vdi" --format VDI --size 8192
vboxmanage createmedium disk --filename "$HOME/VirtualBox VMs/$_VM/${_VM}-3.vdi" --format VDI --size 8192

###  PRIPOJENI VIRTUALNICH DISKU A ISO SOUBORU  ###

vboxmanage storageattach $_VM --storagectl "SATA" --device 0 --port 0 --type hdd --medium "$HOME/VirtualBox VMs/$_VM/${_VM}-0.vdi"
vboxmanage storageattach $_VM --storagectl "SATA" --device 0 --port 1 --type hdd --medium "$HOME/VirtualBox VMs/$_VM/${_VM}-1.vdi"
vboxmanage storageattach $_VM --storagectl "SATA" --device 0 --port 2 --type hdd --medium "$HOME/VirtualBox VMs/$_VM/${_VM}-2.vdi"
vboxmanage storageattach $_VM --storagectl "SATA" --device 0 --port 3 --type hdd --medium "$HOME/VirtualBox VMs/$_VM/${_VM}-3.vdi"

vboxmanage storageattach $_VM --storagectl "IDE" --device 0 --port 0 --type dvddrive --medium "/tmp/ubuntu-20.04.3-live-server-amd64.iso"