-
-
Notifications
You must be signed in to change notification settings - Fork 2
Linux Virtualization
Complete beginner-friendly guide to virtualization on Linux, covering Arch Linux, CachyOS, and other distributions including QEMU/KVM, VirtualBox, Docker, container management, and GPU passthrough.
- Understanding Virtualization
- QEMU/KVM Setup
- virt-manager Configuration
- VirtualBox Setup
- Docker Setup
- Container Management
- GPU Passthrough
- Performance Optimization
- Troubleshooting
Virtualization allows running multiple operating systems on one computer.
What it does:
- Creates VMs: Virtual machines (isolated environments)
- Runs multiple OS: Different operating systems simultaneously
- Isolates systems: VMs are separate from host
- Resource sharing: Shares CPU, RAM, disk with host
Full virtualization:
- QEMU/KVM: Hardware virtualization (Linux native)
- VMware: Commercial virtualization
- VirtualBox: Cross-platform virtualization
Container virtualization:
- Docker: Application containers
- Podman: Docker alternative
- LXC: System containers
Why use virtualization:
- Testing: Test software safely
- Isolation: Isolate applications
- Multiple OS: Run different operating systems
- Development: Development environments
- Security: Isolated environments
Check CPU virtualization support:
# Check CPU features
lscpu | grep -E "vmx|svm"
# Or
grep -E "vmx|svm" /proc/cpuinfoWhat this does:
- Checks CPU virtualization features
-
vmx: Intel VT-x -
svm: AMD-V - Need one of these
Install packages:
# Arch/CachyOS
sudo pacman -S qemu-full virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat
# Install libvirt
sudo pacman -S libvirt libvirt-glib
# Enable services
sudo systemctl enable --now libvirtd.serviceDebian/Ubuntu:
sudo apt install qemu-kvm libvirt-daemon-system virt-managerFedora:
sudo dnf install @virtualizationAdd to libvirt group:
# Add user to group
sudo usermod -aG libvirt username
# Log out and back inGUI for VMs:
# Install virt-manager
sudo pacman -S virt-manager
# Launch
virt-managerInstall VirtualBox:
# Arch/CachyOS
sudo pacman -S virtualbox virtualbox-host-modules-arch
# Debian/Ubuntu
sudo apt install virtualbox
# Fedora
sudo dnf install VirtualBoxLoad modules:
# Load modules
sudo modprobe vboxdrv
# Enable at boot
echo "vboxdrv" | sudo tee -a /etc/modules-load.d/virtualbox.confInstall Docker:
# Arch/CachyOS
sudo pacman -S docker
# Enable service
sudo systemctl enable docker
sudo systemctl start docker
# Add user to group
sudo usermod -aG docker usernameDebian/Ubuntu:
sudo apt install docker.ioFedora:
sudo dnf install dockerInstall Docker Compose:
# Arch/CachyOS
sudo pacman -S docker-compose
# Or use plugin
sudo pacman -S docker-compose-pluginInstall Podman:
# Arch/CachyOS
sudo pacman -S podman
# Debian/Ubuntu
sudo apt install podman
# Fedora
sudo dnf install podmanPodman is a Docker alternative that doesn't require a daemon.
Requirements:
- Two GPUs: One for host, one for VM
- IOMMU enabled: In BIOS/UEFI
- Kernel parameters: Enable IOMMU
Edit GRUB:
# Edit GRUB
sudo vim /etc/default/grubAdd kernel parameters:
GRUB_CMDLINE_LINUX_DEFAULT="... intel_iommu=on"
# Or for AMD
GRUB_CMDLINE_LINUX_DEFAULT="... amd_iommu=on"
Regenerate:
sudo grub-mkconfig -o /boot/grub/grub.cfgSee Virt-manager Installation Guide for detailed GPU passthrough setup.
Pin CPU cores:
# In virt-manager
# CPU > Topology > PinningAllocate memory:
# In virt-manager
# Memory > Allocate memoryCheck logs:
# Check libvirt logs
journalctl -u libvirtd
# Check VM logs
virsh dumpxml vm-nameCheck groups:
# Check groups
groups
# Should include: libvirt, kvmThis guide covered virtualization for Arch Linux, CachyOS, and other distributions, including QEMU/KVM, VirtualBox, Docker, and GPU passthrough.
- Virt-manager Installation Guide - Detailed virt-manager setup
- Container Orchestration - Container management
- Security Configuration - Security
- ArchWiki QEMU: https://wiki.archlinux.org/title/QEMU
- ArchWiki KVM: https://wiki.archlinux.org/title/KVM
This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.