Running Vitruvian under QEMU on a Linux host is the setup the project actually develops against, and it’s the fastest and most reliable way to try the system.
Start with QEMU + KVM
Install QEMU:
sudo apt install qemu-system-x86 qemu-kvm
Check that hardware acceleration is available:
kvm-ok
If kvm-ok reports KVM is unavailable, don’t panic: QEMU still runs, it’s just slower. On most machines the message is a matter of enabling virtualization in the firmware or freeing the hardware from another hypervisor.
Boot a raw image
qemu-system-x86_64 \
-cdrom vitruvian.img -boot menu=on \
-m 4G -cpu host -smp sockets=1,cores=2,threads=2 --enable-kvm \
-netdev user,id=mynet,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=mynet \
-audiodev id=snd0,driver=pa -device ich9-intel-hda \
-device hda-output,audiodev=snd0
Adjust -m (guest RAM, 4G is plenty) and -smp (CPU layout) to what your host has to give. Drop --enable-kvm if you’re running without it.
Boot an ISO
qemu-system-x86_64 \
-cdrom vitruvian.iso -boot menu=on \
-m 4G -cpu host -smp sockets=1,cores=2,threads=2 --enable-kvm \
-netdev user,id=mynet,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=mynet \
-audiodev id=snd0,driver=pa -device ich9-intel-hda \
-device hda-output,audiodev=snd0
SSH into the guest
The hostfwd=tcp::2222-:22 piece forwards the guest’s SSH port to port 2222 on your machine:
ssh -p 2222 vitruvian@127.0.0.1
Useful flags
| Flag | Purpose |
|---|---|
-display gtk |
GTK window instead of the default SDL one |
-display spice-app |
SPICE, for better clipboard and display integration |
-cpu host |
Expose host CPU features to the guest |
-snapshot |
Run without writing changes back to the image |
-serial stdio |
Print serial output to the terminal, handy for capturing boot logs |