kvm-ok是验证KVM实际可用性的最可靠方式,它不仅检查CPU标志位,还验证/dev/kvm访问性、内核模块加载状态及用户权限;仅grep vmx/svm有输出不等于KVM能运行。

能直接用 kvm-ok 就别绕路——它比单纯查 /proc/cpuinfo 多一层实际可用性验证,避免“参数在,KVM 不能跑”的尴尬。
grep vmx 或 svm 只说明硬件能力,不等于能用
执行 grep -E "vmx|svm" /proc/cpuinfo 有输出,只代表 CPU 芯片本身支持 VT-x(Intel)或 AMD-V(AMD)。但常见断点在 BIOS 层:很多 OEM 主板默认关闭虚拟化,或恢复默认设置后自动关掉。部分低功耗 Intel CPU(如 J 系列、老 Atom)压根没 vmx 指令,即使 BIOS 开启也查不到。
- 若命令无输出,先确认 CPU 型号是否本就不支持(查 Intel ARK 或 AMD 官网)
- 有输出但 KVM 不工作,优先进 BIOS 找 “Intel Virtualization Technology” 或 “SVM Mode”,确保设为 Enabled
- 某些主板选项名很隐蔽,比如叫 “Processor Virtualization” 或 “Secure Virtual Machine”
kvm-ok 是最贴近真实使用场景的检测方式
kvm-ok 不仅检查 /proc/cpuinfo,还会验证 /dev/kvm 是否可访问、kvm_intel 或 kvm_amd 模块是否已加载、当前用户是否有权限。它模拟的是 QEMU/KVM 启动时的真实依赖链。
- 未安装时:Debian/Ubuntu 运行
sudo apt install cpu-checker;RHEL/CentOS 用sudo yum install cpu-checker - 运行
sudo kvm-ok,输出KVM acceleration can be used才算真正过关 - 若提示
Operation not permitted,大概率是 Secure Boot 阻止了kvm_intel加载,临时禁用 Secure Boot 再试
lsmod | grep kvm 必须看到对应模块
lscpu | grep Virtualization 显示 “VT-x” 并不保险——内核模块可能根本没加载。KVM 依赖 kvm_intel(Intel)或 kvm_amd(AMD)提供底层指令支持,缺一不可。
- 运行
lsmod | grep kvm,应至少看到一行含kvm_intel或kvm_amd,且前面没有unused标记 - 若为空,手动加载:
sudo modprobe kvm_intel(Intel)或sudo modprobe kvm_amd(AMD) - 加载失败常见于:Secure Boot 启用、内核版本太旧(
最容易被忽略的是嵌套虚拟化场景:宿主机本身跑在 VMware 或 VirtualBox 里,而外层没开 “Nested VT-x” 选项,此时所有本地检测都显示正常,但 /dev/kvm 仍不可用。这种情况下,kvm-ok 会明确报错,比查 vmx 标志管用得多。


















