Check Virtualization Setup
You are helping the user check if the system is properly set up to run virtualized workloads and remediate any issues.
Your tasks:
Check if CPU supports virtualization:
Intel (VT-x):
grep -E "vmx" /proc/cpuinfoAMD (AMD-V):
grep -E "svm" /proc/cpuinfoIf no output, virtualization is not supported or not enabled in BIOS.
Check if virtualization is enabled in BIOS:
sudo apt install cpu-checker sudo kvm-okIf it says KVM can be used, virtualization is enabled. If not, user needs to enable it in BIOS/UEFI.
Check current virtualization software:
KVM/QEMU:
which qemu-system-x86_64 lsmod | grep kvmVirtualBox:
which virtualbox VBoxManage --versionVMware:
which vmware systemctl status vmwareDocker (containerization):
docker --version systemctl status dockerCheck KVM kernel modules:
lsmod | grep kvmShould show:
kvm_intel(for Intel)kvm_amd(for AMD)kvm(base module)
If not loaded, try:
sudo modprobe kvm sudo modprobe kvm_intel # or kvm_amdInstall KVM and related tools (if not installed):
sudo apt update sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-managerCheck libvirt status:
sudo systemctl status libvirtdIf not running:
sudo systemctl enable libvirtd sudo systemctl start libvirtdAdd user to required groups:
sudo usermod -aG libvirt $USER sudo usermod -aG kvm $USERUser needs to log out and back in for group changes to take effect.
Verify user permissions:
groupsShould include:
libvirtandkvmCheck libvirt connectivity:
virsh list --allIf permission denied, user is not in libvirt group or not logged back in.
Check virtualization networking:
Default network:
virsh net-list --allIf default network is not active:
virsh net-start default virsh net-autostart defaultBridge networking:
ip link show brctl show # if bridge-utils installedCheck nested virtualization (if needed):
For Intel:
cat /sys/module/kvm_intel/parameters/nestedFor AMD:
cat /sys/module/kvm_amd/parameters/nestedIf shows
Nor0, nested virtualization is disabled.To enable:
echo "options kvm_intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf # or for AMD: echo "options kvm_amd nested=1" | sudo tee /etc/modprobe.d/kvm-amd.confThen reload:
sudo modprobe -r kvm_intel sudo modprobe kvm_intelCheck IOMMU for PCIe passthrough (if needed):
dmesg | grep -i iommuIf IOMMU is needed, add to kernel parameters in
/etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on" # or for AMD: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=on"Then update grub:
sudo update-grub sudo rebootCheck available storage pools:
virsh pool-list --allCreate default pool if needed:
virsh pool-define-as default dir --target /var/lib/libvirt/images virsh pool-start default virsh pool-autostart defaultCheck system resources for virtualization:
free -h df -h /var/lib/libvirt/images cat /proc/cpuinfo | grep "processor" | wc -lRecommendations:
- At least 4GB RAM for light VMs
- At least 20GB free disk space
- Multiple CPU cores recommended
Test VM creation (small test):
virt-install --name test-vm \ --ram 512 \ --disk size=1 \ --cdrom /path/to/iso \ --graphics vnc \ --check all=off \ --dry-runCheck for conflicting virtualization: VirtualBox and KVM can sometimes conflict. Check if both are installed:
dpkg -l | grep -E "virtualbox|qemu-kvm"VirtualBox kernel modules can conflict with KVM:
lsmod | grep vboxCheck virtualization acceleration:
ls -l /dev/kvmShould be:
crw-rw---- 1 root kvm /dev/kvmInstall virt-manager (GUI) if desired:
sudo apt install virt-managerTest launch:
virt-managerCheck for Secure Boot issues: Secure Boot can prevent some virtualization modules from loading:
mokutil --sb-stateIf Secure Boot is enabled and causing issues, user may need to:
- Sign modules
- Disable Secure Boot in BIOS
- Use signed versions
Performance tuning:
Enable hugepages for better performance:
sudo sysctl vm.nr_hugepages=1024 echo "vm.nr_hugepages=1024" | sudo tee -a /etc/sysctl.confCheck CPU governor:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governorFor virtualization,
performancegovernor is recommended:sudo apt install cpufrequtils sudo cpufreq-set -g performanceReport findings: Summarize:
- CPU virtualization support status
- BIOS/UEFI virtualization enabled status
- KVM modules loaded status
- libvirt status
- User group membership
- Network configuration
- Nested virtualization status
- Storage pools status
- Available resources
- Any conflicts or issues
- Recommendations
Provide recommendations:
- Enable VT-x/AMD-V in BIOS if not enabled
- Install KVM/QEMU if not present
- Add user to libvirt and kvm groups
- Set up default network
- Enable nested virtualization if needed
- Configure IOMMU for PCIe passthrough if needed
- Install virt-manager for GUI management
- Allocate sufficient resources
- Resolve any conflicts (VirtualBox vs KVM)
- Performance tuning suggestions
Basic virtualization commands to share:
virsh list --all- List all VMsvirsh start <vm>- Start a VMvirsh shutdown <vm>- Shutdown a VMvirsh destroy <vm>- Force stop a VMvirsh console <vm>- Connect to VM consolevirsh net-list- List networksvirsh pool-list- List storage poolsvirt-manager- Launch GUIvirt-install- Create new VM from command line
Important notes:
- Virtualization must be enabled in BIOS/UEFI
- User must be in kvm and libvirt groups
- Log out and back in after adding to groups
- VirtualBox and KVM can conflict
- Nested virtualization is disabled by default
- IOMMU required for PCIe passthrough
- Secure Boot may prevent module loading
- Sufficient RAM and disk space needed
- Performance governor recommended for VMs
- Check if system is itself a VM before enabling nested virtualization