Kennisbank › Virtualisatie › virtuele machine
virtualisatie starter 13 September 2026

virtuele machine

Je kan geen virtuele machine starten zonder eerst te weten welke laag je nodig hebt: hardware, kernel of gebruikersruimte.Dit artikel laat zien hoe je op een

Je kan geen virtuele machine starten zonder eerst te weten welke laag je nodig hebt: hardware, kernel of gebruikersruimte.

Dit artikel laat zien hoe je op een moderne Linux-server een virtuele machine opzet met KVM, de standaard virtualisatieoplossing in Linux sinds 2007. Het is bedoeld voor systeembeheerders en ontwikkelaars die een geïsoleerde omgeving nodig hebben voor testen, ontwikkelen of hosten — zonder afhankelijk te zijn van cloudproviders of gesloten software.

---

Vereisten

Je hebt een fysieke of bare-metal server nodig met een x86_64-processor die virtualisatie ondersteunt. De meeste moderne Intel en AMD-processors hebben dit, maar het moet wel ingeschakeld zijn in de BIOS/UEFI.

Controleer of virtualisatie beschikbaar is: ```bash egrep -c '(vmx|svm)' /proc/cpuinfo ``` Als het resultaat 0 is, is virtualisatie uitgeschakeld of niet ondersteund. Zet `Intel VT-x` of `AMD-V` aan in de firmware.

Je werkt op Linux 2.6.20 of nieuwer — KVM is sinds die versie ingebouwd in de kernel. We gebruiken Ubuntu 22.04 LTS of Debian 12 als voorbeeld, maar elke recente distributie met `systemd` en `libvirt` werkt.

Installeer de benodigde pakketten: ```bash sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager ```

`qemu-kvm` emuleert hardware. `libvirt` beheert VM’s via een API. `virt-manager` is de grafische interface — handig, maar niet verplicht.

Voeg je gebruiker toe aan de `libvirt`- en `kvm`-groepen: ```bash sudo usermod -aG libvirt $(whoami) sudo usermod -aG kvm $(whoami) ```

Herstart de `libvirtd`-service: ```bash sudo systemctl enable libvirtd && sudo systemctl restart libvirtd ```

Zonder deze stappen krijg je later toegangsfouten. Virtualisatie draait niet in de achtergrond — je moet expliciet toestemming geven.

---

Stappen

1. Controleer of KVM werkt

Voordat je een VM aanmaakt, moet je weten of de kernel de hardware kan gebruiken.

Voer dit commando uit: ```bash sudo kvm-ok ```

Als alles goed is, zie je: ``` INFO: /dev/kvm exists KVM acceleration can be used ```

Zonder `/dev/kvm` werkt KVM niet. Dan ben je afhankelijk van software-emulatie via QEMU alleen — traag en ongeschikt voor productie.

Als het misgaat, controleer dan:

  • BIOS-instellingen (VT-x/AMD-V)
  • Of `kvm_intel` of `kvm_amd` geladen is: `lsmod | grep kvm`
  • Of `/dev/kvm` bestaat: `ls -l /dev/kvm`
Geen virtuele machine is sneller dan de hardware waarop hij draait. Maar een slechte configuratie maakt hem wél trager.

2. Kies het juiste netwerkmodel

KVM biedt meerdere netwerkopties: `NAT`, `bridge`, `macvtap`.

Voor meeste gevallen gebruik je NAT via libvirt’s standaardnetwerk. Het is automatisch ingesteld en vereist geen extra configuratie.

Controleer of het actief is: ```bash virsh net-list --all ```

Je ziet waarschijnlijk: ``` Name State Autostart Persistent default active yes yes ```

Als het niet actief is: ```bash virsh net-start default virsh net-autostart default ```

NAT is eenvoudig: je VM krijgt een privé-IP (meestal 192.168.122.x) en de host routeert het verkeer. Voor productie of serveromgevingen wil je vaak een bridge naar de fysieke interface. Dan krijgt de VM een IP op het lokale netwerk, alsof het een aparte machine is.

Maar bridge vereist handmatige configuratie van `netplan` of `NetworkManager`. Dat is complexer en foutgevoeliger.

Je kiest hier tussen gemak en controle. NAT is veiliger — de VM is niet direct bereikbaar van buitenaf. Bridge is nodig als je een webserver of database wil hosten.

3. Download een installatie-ISO

Je hebt een bron voor het besturingssysteem nodig.

Download bijvoorbeeld Ubuntu Server 22.04 LTS: ```bash wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-live-server-amd64.iso -P ~/iso/ ```

Maak een map voor de schijf: ```bash mkdir -p ~/vm-disks ```

Je kunt ook Fedora, Debian of zelfs Windows gebruiken. Zorg dat de ISO compatibel is met x86_64 en UEFI/BIOS zoals je VM zal gebruiken.

ISO’s zijn statisch. Eenmaal gedownload, verandert ze niet. Maar houd ze op een snelle schijf — trage I/O vertraagt de installatie.

4. Maak de virtuele machine aan met `virt-install`

Gebruik de command-line om volledige controle te hebben.

Dit commando maakt een VM met:

  • 2 CPU-kernen
  • 4096 MB RAM
  • 32 GB schijfruimte
  • Ubuntu ISO als installatiebron
```bash virt-install \ --name ubuntu-vm \ --vcpus 2 \ --memory 4096 \ --disk path=~/vm-disks/ubuntu-vm.qcow2,size=32,format=qcow2 \ --cdrom ~/iso/ubuntu-22.04.4-live-server-amd64.iso \ --os-variant ubuntu22.04 \ --network network=default \ --graphics spice \ --boot uefi \ --import ```

`qcow2` is het standaardformaat: ondersteunt snapshots, compressie en thin provisioning. `--import` zegt dat de schijf leeg is en de installatie moet starten. `--graphics spice` gebruikt het SPICE-protocol voor grafische toegang — beter dan VNC voor desktopgebruik.

Als je geen GUI hebt, gebruik dan `--graphics none` en installeer headless via seriële console.

Je kan dit ook doen via `virt-manager`, maar dan weet je niet wat er achter de schermen gebeurt. Automatisering werkt alleen als je de commando’s kent.

5. Volg de installatie via SPICE

Als je `virt-manager` hebt geïnstalleerd, start het automatisch een SPICE-client.

Zonder GUI: ```bash remote-viewer spice://localhost:5900 ```

`remote-viewer` is onderdeel van `virt-viewer`. Installeer het met: ```bash sudo apt install -y virt-viewer ```

SPICE geeft je volledige toegang tot het installatiescherm. Je kunt besturingssystemen installeren alsof je op een echte machine zit.

VNC is een alternatief, maar SPICE heeft betere prestaties, ondersteuning voor meerdere schermen en audio. Voor servers maakt het weinig uit — je gebruikt toch SSH na de installatie.

6. Start de VM na installatie

Na installatie moet je de CD-ROM loskoppelen, anders boot hij opnieuw van de ISO.

Zo koppel je de ISO los: ```bash virsh change-media ubuntu-vm --path ~/iso/ubuntu-22.04.4-live-server-amd64.iso --eject --config ```

Start opnieuw: ```bash virsh reboot ubuntu-vm ```

Controleer de status: ```bash virsh list --all ```

Als de VM draait, zie je: ``` Id Name State 2 ubuntu-vm running ```

Je kan nu via SSH verbinden als je tijdens installatie een netwerkgebruiker aanmaakte.

7. Configureer automatisch opstarten (optioneel)

Als je de VM wil laten meedraaien met de host: ```bash virsh autostart ubuntu-vm ```

Dan start hij automatisch na een herstart van de fysieke server.

Handig voor productie, gevaarlijk voor testomgevingen. Een VM die altijd opstart, verbruikt altijd resources.

8. Maak een snapshot voor herstel

Gebruik snapshots om terug te keren naar een werkende staat.

Maak een snapshot: ```bash virsh snapshot-create-as ubuntu-vm snap1 "Eerste werkende installatie" --atomic ```

Bekijk snapshots: ```bash virsh snapshot-list ubuntu-vm ```

Terugkeren: ```bash virsh snapshot-revert ubuntu-vm snap1 ```

Snapshots werken alleen met `qcow2`. Ze zijn geen back-up — bij verlies van de host of schijf, ben je alles kwijt. Maar voor testen en ontwikkeling zijn ze onmisbaar.

---

Verificatie

Controleer of alles werkt:

1. Is de VM actief? ```bash virsh domstate ubuntu-vm ``` Moet `running` zijn.

2. Heeft hij een IP-adres? ```bash virsh domifaddr ubuntu-vm ``` Je ziet dan iets als `192.168.122.10`.

3. Kun je er via SSH in? ```bash ssh gebruiker@192.168.122.10 ```

4. Draait KVM efficiënt? ```bash top -p $(pgrep kvm) ``` CPU-gebruik moet laag zijn als de VM niets doet.

Als al dit lukt, draait je virtuele machine op hardwareniveau — niet geëmuleerd, maar gevirtualiseerd.

---

Veelgestelde problemen

1. “Error: Cannot access storage file”

De fout verschijnt als de gebruiker geen rechten heeft op `~/vm-disks`.

Oplossing: Zorg dat de map lees- en schrijfrechten heeft: ```bash chmod 755 ~/vm-disks sudo chown $(whoami):$(whoami) ~/vm-disks ```

Of gebruik `/var/lib/libvirt/images/` — de standaardlocatie met correcte permissies.

2. “No bootable device” na installatie

Je vergeet de ISO te ontkoppelen. De VM probeert opnieuw te installeren.

Oplossing: ```bash virsh change-media ubuntu-vm hda --eject --config ```

Of wijzig de bootvolgorde in de XML-configuratie: ```bash virsh edit ubuntu-vm ``` Zoek `` en zet `hd` eerst.

3. Geen netwerkverbinding in de VM

Controleer of het `default`-netwerk actief is: ```bash virsh net-list ```

Als het inactief is: ```bash virsh net-start default virsh net-autostart default ```

Soms blokkeert de firewall `libvirt`: ```bash sudo ufw allow from 192.168.122.0/24 ```

Virtualisatie is geen magie — het is een compromis tussen isolatie, prestaties en beheerbaarheid.

KVM maakt Linux tot een hypervisor, maar vraagt discipline. Een slecht geconfigureerde VM vertraagt de host, lekt geheugen of valt stil bij een herstart.

Je kan ook VMware of VirtualBox gebruiken. VMware is stabiel en goed voor desktops, maar gesloten. VirtualBox is eenvoudig, maar traag op serverniveau.

KVM is de enige optie die volledig geïntegreerd is in de Linux-kernel. Je betaalt met complexiteit — maar je krijgt controle.

En op zondag om 23:47, als de VM niet opstart, is die controle precies wat je nodig hebt.

← Terug naar kennisbank
← Terug naar kennisbank