Linux Virtualization - ryzendew/Linux-Tips-and-Tricks GitHub Wiki
Linux Virtualization Guide
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.
Table of Contents
- Understanding Virtualization
- QEMU/KVM Setup
- virt-manager Configuration
- VirtualBox Setup
- Docker Setup
- Container Management
- GPU Passthrough
- Performance Optimization
- Troubleshooting
Understanding Virtualization
What is Virtualization?
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
Virtualization Types
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
Benefits
Why use virtualization:
- Testing: Test software safely
- Isolation: Isolate applications
- Multiple OS: Run different operating systems
- Development: Development environments
- Security: Isolated environments
QEMU/KVM Setup
Check Hardware Support
Check CPU virtualization support:
# Check CPU features
lscpu | grep -E "vmx|svm"
# Or
grep -E "vmx|svm" /proc/cpuinfo
What this does:
- Checks CPU virtualization features
vmx: Intel VT-xsvm: AMD-V- Need one of these
Install QEMU/KVM
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.service
Debian/Ubuntu:
sudo apt install qemu-kvm libvirt-daemon-system virt-manager
Fedora:
sudo dnf install @virtualization
Add User to Group
Add to libvirt group:
# Add user to group
sudo usermod -aG libvirt username
# Log out and back in
virt-manager
GUI for VMs:
# Install virt-manager
sudo pacman -S virt-manager
# Launch
virt-manager
VirtualBox Setup
Install VirtualBox
Install VirtualBox:
# Arch/CachyOS
sudo pacman -S virtualbox virtualbox-host-modules-arch
# Debian/Ubuntu
sudo apt install virtualbox
# Fedora
sudo dnf install VirtualBox
Enable VirtualBox
Load modules:
# Load modules
sudo modprobe vboxdrv
# Enable at boot
echo "vboxdrv" | sudo tee -a /etc/modules-load.d/virtualbox.conf
Docker Setup
Install Docker
Install 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 username
Debian/Ubuntu:
sudo apt install docker.io
Fedora:
sudo dnf install docker
Docker Compose
Install Docker Compose:
# Arch/CachyOS
sudo pacman -S docker-compose
# Or use plugin
sudo pacman -S docker-compose-plugin
Container Management
Podman
Install Podman:
# Arch/CachyOS
sudo pacman -S podman
# Debian/Ubuntu
sudo apt install podman
# Fedora
sudo dnf install podman
Podman is a Docker alternative that doesn't require a daemon.
GPU Passthrough
Prerequisites
Requirements:
- Two GPUs: One for host, one for VM
- IOMMU enabled: In BIOS/UEFI
- Kernel parameters: Enable IOMMU
Enable IOMMU
Edit GRUB:
# Edit GRUB
sudo vim /etc/default/grub
Add 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.cfg
See Virt-manager Installation Guide for detailed GPU passthrough setup.
Performance Optimization
CPU Pinning
Pin CPU cores:
# In virt-manager
# CPU > Topology > Pinning
Memory Allocation
Allocate memory:
# In virt-manager
# Memory > Allocate memory
Troubleshooting
VM Not Starting
Check logs:
# Check libvirt logs
journalctl -u libvirtd
# Check VM logs
virsh dumpxml vm-name
Permission Issues
Check groups:
# Check groups
groups
# Should include: libvirt, kvm
Summary
This guide covered virtualization for Arch Linux, CachyOS, and other distributions, including QEMU/KVM, VirtualBox, Docker, and GPU passthrough.
Next Steps
- 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.