必须开启CPU硬件虚拟化并安装启用KVM组件:BIOS中启用Intel VT-x/AMD-V及EPT/RVI(如需嵌套虚拟化),禁用Hyper-Threading;Linux中验证vmx/svm标志、加载kvm_intel/kvm_amd模块,安装qemu-kvm、libvirt等包,启动libvirtd服务并确认default网络就绪。

要在物理服务器上成功运行KVM虚拟机,必须先让硬件支持虚拟化,并在操作系统中正确安装和启用KVM组件。缺少任一环节,后续创建的虚拟机将无法启动或性能严重受限。
确认并开启CPU硬件虚拟化(BIOS/UEFI设置)
重启服务器,在开机自检画面出现时迅速按 Del 键(Dell/HP多为 F2,Lenovo常见为 F1),进入BIOS/UEFI界面。
导航至 Advanced → CPU Configuration(Intel平台)或 Advanced → SVM Mode(AMD平台),将 Intel Virtualization Technology 或 SVM Mode 设为 Enabled。
若服务器用于生产环境且需嵌套虚拟化(例如在KVM虚拟机里再跑Docker Desktop或WSL2),还需一并启用 Intel EPT 或 AMD RVI;否则可跳过此步。
【务必禁用Hyper-Threading(超线程)】——部分老型号Xeon在开启VT-x后若同时启用HT,会导致KVM模块加载失败或虚拟机随机卡死。该选项通常位于同一CPU Configuration页面下。
按 F10 保存设置并退出,服务器自动重启。
验证硬件支持与内核模块加载
登录系统后,执行以下命令检查CPU是否已真正启用虚拟化:
egrep --color 'vmx|svm' /proc/cpuinfo
若输出中出现带高亮的 vmx(Intel)或 svm(AMD)标志,说明BIOS设置已生效;若无任何输出,需重新进BIOS核查或升级BIOS固件版本。
接着检查KVM内核模块是否就绪:
lsmod | grep kvm
正常应看到 kvm_intel 或 kvm_amd 及其依赖模块(如 kvm)。若为空,说明内核未加载——此时不可跳过,必须排查SELinux状态、内核版本兼容性或是否误装了无KVM支持的定制内核。
安装KVM核心组件(以CentOS/RHEL 7–8为例)
方法一:使用dnf/yum一键安装全功能套件
sudo dnf groupinstall "Virtualization Host" -y
该命令会自动拉取 qemu-kvm、libvirt-daemon-kvm、virt-install、bridge-utils 等全部必需包,适合首次部署。
方法二:精简安装(仅基础运行时,不带图形管理)
sudo yum install -y qemu-kvm libvirt virt-install bridge-utils
这一步操作起来很简单,但注意:libvirt 是KVM的“总开关”,没有它,virt-install、virsh等所有管理命令均无法连接hypervisor。
启动并启用libvirt服务
第一步:启动服务进程
sudo systemctl start libvirtd
第二步:设为开机自启(避免重启后虚拟机全部离线)
sudo systemctl enable libvirtd
第三步:验证服务状态
sudo systemctl status libvirtd
输出中必须显示 active (running) 且无红色failed提示。若提示 Failed to start Libvirt daemon,大概率是SELinux处于enforcing模式且策略未适配——此时请立即执行 sudo setenforce 0 并修改 /etc/selinux/config 中的 SELINUX=disabled,否则libvirtd将反复崩溃。
第四步:确认默认NAT网络已就绪
sudo virsh net-list --all
应看到名为 default 的网络状态为 active。这是KVM安装后自动创建的NAT网桥 virbr0,新虚拟机默认由此上网。
创建第一台KVM虚拟机(命令行方式)
准备一个ISO镜像文件(如 CentOS-7-x86_64-Minimal.iso),将其放入 /var/lib/libvirt/images/ 目录。
执行以下单行命令完成创建与安装:
sudo virt-install --name centos7-test --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/centos7-test.qcow2,size=20,bus=virtio --cdrom /var/lib/libvirt/images/CentOS-7-x86_64-Minimal.iso --os-variant centos7.0 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
该命令中 --os-variant centos7.0 是关键,它会自动启用KVM最佳优化参数(如半虚拟化驱动、CPU拓扑识别),若填错为generic或省略,可能导致安装过程蓝屏或安装后磁盘I/O极慢。
安装启动后,用VNC客户端连接宿主机IP:5900即可进入图形化安装界面。安装完成后,虚拟机会自动关机;此时执行 sudo virsh start centos7-test 即可启动。











