必须确认CPU支持并启用VT-x或AMD-V,否则KVM模块无法加载;执行egrep -c '(vmx|svm)' /proc/cpuinfo,输出为0需进BIOS开启虚拟化及VT-d/IOMMU,再安装qemu-kvm、libvirt等组件并启动libvirtd服务。

要在Linux系统上成功安装并运行KVM虚拟机,必须确认CPU硬件层面已具备虚拟化能力,否则后续所有安装步骤都将失败——【没有VT-x或AMD-V支持,KVM模块根本无法加载】。
CPU虚拟化支持检测
打开终端,执行以下命令:
egrep -c '(vmx|svm)' /proc/cpuinfo
若输出结果为 【0】,说明CPU不支持硬件虚拟化,或BIOS中该功能被禁用,此时应立即停止安装流程;输出大于0则继续下一步。
再运行 lscpu | grep Virtualization,查看具体标识:Intel CPU显示“VT-x”,AMD CPU显示“AMD-V”(部分老型号可能显示为“SVM”)。
注意:仅靠CPU型号参数页标注“支持VT-x”不作数,必须以该命令实际输出为准——有些OEM整机(如联想ThinkStation、戴尔Precision)出厂BIOS会默认关闭虚拟化开关,导致命令无输出。
BIOS中启用虚拟化功能
重启宿主机,在开机自检画面出现时反复按Del/F2/F10(具体键位见主板品牌提示),进入BIOS设置界面。
华硕主板路径:Advanced → CPU Configuration → Intel Virtualization Technology(Intel)或 SVM Mode(AMD)→ 设为 Enabled。
技嘉主板路径:Settings → CPU Configuration → Intel Virtualization Technology 或 SVM Mode → Enabled。
【务必同步开启VT-d(Intel)或IOMMU(AMD)】:KVM直通PCI设备、WSL2正常运行、libvirt热迁移等功能均依赖此项。Intel平台需在Advanced → System Agent Configuration → VT-d Feature设为Enabled;AMD平台则在Advanced → NBIO Configuration → IOMMU Controller设为Enabled。
保存设置后退出(通常为F10 → Yes),系统自动重启。
安装KVM核心组件(CentOS/RHEL系)
第一步:确保系统已更新并启用EPEL源
sudo yum update -y && sudo yum install epel-release -y
第二步:安装KVM必需的底层模块与管理工具
sudo yum install -y qemu-kvm libvirt virt-install bridge-utils virt-manager
第三步:启动并启用libvirtd服务
sudo systemctl start libvirtd && sudo systemctl enable libvirtd
第四步:验证KVM内核模块是否已加载
lsmod | grep -E 'kvm_(intel|amd)|kvm' —— 正常应有两行以上输出,包含kvm和对应厂商模块(如kvm_intel);若无输出,手动加载:sudo modprobe kvm && sudo modprobe kvm_intel(Intel)或 sudo modprobe kvm_amd(AMD)。
安装KVM核心组件(Ubuntu/Debian系)
方法一:一键安装全部常用组件(含图形界面管理器)
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
方法二:最小化安装(仅命令行环境,适合服务器)
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst
安装完成后,运行 sudo virsh -c qemu:///system list --all 验证libvirt连接状态;若返回空列表且无报错,说明KVM服务已就绪。
验证宿主机是否真正就绪
① 检查/dev/kvm设备是否存在:ls -l /dev/kvm —— 应返回 crw-rw---- 权限的字符设备节点;若提示“No such file or directory”,说明KVM模块未加载或CPU不支持。
② 检查libvirtd监听状态:sudo netstat -tlnp | grep :16509 —— 正常应看到libvirtd进程监听在本地TCP 16509端口(libvirt默认管理端口)。
③ 创建一个最小测试虚拟机(仅内存+CPU,不分配磁盘和网络):
sudo virt-install --name testvm --memory 512 --vcpus 1 --import --graphics none --print-xml | head -20
若能正常输出XML片段,说明virt-install工具链完整可用;若报错“Unable to connect to libvirt”,需检查libvirtd是否运行、当前用户是否加入libvirt组(sudo usermod -a -G libvirt $USER,然后重新登录终端)。











