Na Linuxové platformě se budeme bavit především o virtualizačním nástroji QEMU.
Vytvořil ho nadaný programátor Fabrice Bellard v roce 2003. Zkratka znamená Quick Emulator a v jeho logu se příhodně nachází hlava ptáka Emu.
Instalace na Archlinuxu
Tyto balíčky jsou potřeba pro běh a správu virtuálního prostředi
- qemu-full
Balíček bez binárních souborů, jen licence.
- qemu-img
qemu-img - Nástroj pro kopírování disků virtuálních strojů
- libvirt
virsh - Hlavní příkazový nástroj na správu virtuálních strojů
- virt-install
virt-install - Vytvoří nový virtuální stroj podle parametrů
- virt-manager
virt-manager - Grafický správce virtuálních strojů
- virt-viewer
virt-viewer - Prohlžeč grafického výstupu virtuálních strojů
- edk2-ovmf
Obsahuje jen potřebný firmware pro virtualizaci
- dnsmasq
DHCP server pro virtuální sítě virtuálních strojů (pro NAT)
- guestfs-tools
virt-resize - Nástroj na resize virtuálního disku
virt-df - Vypisuje volné místo na virtuálních discích
a další nástroje
- libosinfo
osinfo-query - Operační systémy pro definici vyrtuálního stroje
Je dobré vědět, co obsahují jednotlivé balíčky a instalovat jen to nejnutnější.
Podtržené binárky ve vyjmenovaných balíčkách jsou ty nejpoužívanější a jejich použití následně rozepíši.
root@myhost:~# pacman -S qemu-full qemu-img libvirt virt-install virt-manager virt-viewer edk2-ovmf dnsmasq guestfs-tools libosinfo --needed
IDX LINK TYPE OPERATIONAL SETUP
warning: qemu-full-10.0.0-7 is up to date -- skipping
warning: qemu-img-10.0.0-7 is up to date -- skipping
warning: virt-install-5.0.0-1 is up to date -- skipping
warning: virt-manager-5.0.0-1 is up to date -- skipping
warning: virt-viewer-11.0-4 is up to date -- skipping
warning: edk2-ovmf-202411-1 is up to date -- skipping
warning: dnsmasq-2.91-1 is up to date -- skipping
warning: guestfs-tools-1.54.0-1 is up to date -- skipping
warning: libosinfo-1.12.0-2 is up to date -- skipping
resolving dependencies...
looking for conflicting packages...
Package (1) Old Version New Version Net Change Download Size
extra/libvirt 1:11.4.0-1 1:11.5.0-1 0.06 MiB 8.69 MiB
Total Download Size: 8.69 MiB
Total Installed Size: 49.93 MiB
Net Upgrade Size: 0.06 MiB
:: Proceed with installation? [Y/n]
Virtual Machine Manager

Základním grafickým nástrojem pro správu virtuálních strojů je Virtual Machine Manager. Tento nástroj najdeme v nabídce stran v záložce System grafického prostředí LXDE.
Jeho spuštění z příkazové řádky se nám bude také hodit, jelikož né vždy budeme mít přímý přístup ke grafické konzoli virtualizačního hostitele
virt-manager --connect qemu:///system
Né všechny nové funkce jsou hned i dostupné v grafické nástavbě, zároveň příkazy nám dávají plnou kontrolu nad tím, co děláme.
Vytvoření nového virtuálního hosta
Řekněme si požadavky na nový virtuální systém:
- OS Archlinux
- RAM 2048MB
- CPUs 1
- disk typu sata velikosti 20GB a formát souboru qcow2
- grafický systém (grafický mód nikoli textový)
- instalační CD máme ve formě iso souboru
- stroj chceme mít v naší síti (nechceme pro něj vytvářet novou síť za NATem)
Poslední požadavek je ta nejzábavnější číst.
Pro přidání virtuální stroje do našeho subnetu je nejčastější způsob vytvořit bridge
Síťové karty, ať už fyzické nebo virtuální, spolu komunikují pomocí MAC adres.
Aby se mohly propojit, stačí jim kabel. Jenže, pokud jedna je fyzická a druhá virtuální nebo je karet pro komunikaci víc, potřebujeme specializované zařízení, kterému se říká most (bridge).
Most najdeme například mezi porty domácího routeru, jako fyzické specializované zařízení. Most dělá to, že si udržuje tabulku se záznamy která MAC adresa příšla ze kterého portu (síťovky), ví pak, kam má data poslat. Na linuxu takové zařízení můžeme vytvořit a propojit tak fyzickou síťovku s mnoha síťovkami, vytvořenými pro komunikaci s virtuálním strojem.
Přidá síťové zařízení typu bridge:
brctl addbr bridge02
Teď můžeme vytvořit virtuálního hosta a jeho síťové rozhraní připojit do tohoto mostu.
user@myhost:~# virt-install --connect qemu:///system \
-n archSYSTEM \
--description "archlinux na testovani" \
--os-variant=archlinux \
--ram=2048 \
--vcpus=1 \
--disk path=/var/lib/libvirt/images/archSYSTEM.qcow2,size=20,format=qcow2,bus=sata \
--graphics spice \
--cdrom /media/win8/ISOs/iso/archlinux2025.06.01/archlinux-2025.06.01-x86_64.iso \
--bridge=bridge02
Starting install...
Allocating 'archSYSTEM.qcow2' | 20 GB 00:00:00
Creating domain... | 00:00:00
Running graphical console command: virt-viewer --connect qemu:///system --wait archSYSTEM
Ověříme si, že vridge existuje a které síťové karty jsou do něj přidány:
user@myhost:~# brctl show
bridge name bridge id STP enabled interfaces
bridge01 8000.9643432e81d2 no enp3s0
vnet0
vnet5
vnet6
vnet7
bridge02 8000.6a61c4ae74c6 no vnet8
Síťovky vnet ve sloupci interfaces jsou síťové karty aktuálně běžících virtuálních strojů. Přesněji ony zpřístupňují bridži virtuální stroj, ale samotný stroj má ještě svoji síťovou kartu s prvním bytem MAC adresy jiným.
Teď už můžeme přidat do mostu fyzickou síťovou kartu, aby mohly virtuální stroje komunikovat s fyzickými stroji, které jsou ve switchi.
root@myhost:~# brctl addif bridge02 enp5s0
Teď nám pravděpodobně přestane fungovat připojení k internetu, protože nemáme žádnou routu pro bridge rozhraní na defaultní bráná.
root@myhost:~# ifconfig bridge02 up
Přiřadíme rozhraní IP adresu:
root@myhost:~# ifconfig bridge02 192.168.1.104/24
Zároveň řekneme, že defaultní brána bude přes most jménem bridge02 a dáme jí příslušnou prioritu pomocí metric:
root@myhost:~# route add default gw 192.168.1.1 metric 1024 bridge02
Vymažeme všechny IP adresy přiřazené rozhraní enp5s0, protože je již součástí mostu a mostová rozhraní nemají mít IP adresy:
root@myhost:~# ifconfig enp5s0 0.0.0.0
Na závěr ještě shodíme a nstartujeme příslušný bridge, pokud se zdá, že komunikace nefunguje, ale vše ostatní je už nastaveno správně:
root@myhost:~# ifconfig bridge02 down
root@myhost:~# ifconfig bridge02 up
Ověříme si, že jsou všechna zařízení UP a ve správném mostovém rozhraní:
user@myhost:~# bridge link show
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge01 state forwarding priority 32 cost 5
5: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge02 state forwarding priority 32 cost 5
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge01 state forwarding priority 32 cost 2
19: vnet5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge01 state forwarding priority 32 cost 2
20: vnet6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge01 state forwarding priority 32 cost 2
21: vnet7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge01 state forwarding priority 32 cost 2
25: vnet11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master bridge02 state forwarding priority 32 cost 2