KVM配置核心是打通“硬件支持→内核模块→管理服务→网络就绪→虚拟机落地”链路;任一环节缺失均导致virt-install报错、virsh连不上或kvm-ok提示加速不可用,90%失败源于CPU/BIOS未启用虚拟化或模块未加载。

Linux 运维中安装配置 KVM,核心不是“装一个软件”,而是打通“硬件支持 → 内核模块 → 管理服务 → 网络就绪 → 虚拟机落地”这条链路。跳过任一环节,virt-install 会报错、virsh list 连不上、甚至 kvm-ok 显示加速不可用——问题不在命令,而在环境没闭环。
确认 CPU 和内核已真正支持虚拟化
这是所有操作的前提,90% 的失败卡在这里:
- 执行
egrep -c '(vmx|svm)' /proc/cpuinfo,输出必须大于 0(Intel 显示 vmx,AMD 显示 svm) - 若为 0,先检查 BIOS/UEFI:找到 Virtualization Technology、Intel VT-x 或 AMD-V 并设为 Enabled
- 若已开启仍为 0,注意是否被 Windows 的 Hyper-V 占用(如 WSL2 或 Docker Desktop),需在 Windows 中运行
bcdedit /set hypervisorlaunchtype off并重启 - 再执行
lsmod | grep kvm,应看到kvm_intel或kvm_amd;若无,说明模块未加载,可手动尝试modprobe kvm_intel(Intel)或modprobe kvm_amd(AMD)
安装最小必要组件并启动管理服务
不同发行版包名差异大,装全量或漏关键包都会导致功能缺失:
-
Ubuntu/Debian:运行
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils(virt-manager可选,但调试网络/存储时 GUI 更直观) -
RHEL/CentOS/Rocky 8+:运行
sudo dnf install -y @virtualization(注意是@virtualization组,不是单装qemu-kvm) - 启动并启用服务:
sudo systemctl enable --now libvirtd - 将当前用户加入权限组:
sudo usermod -aG libvirt,kvm $USER(CentOS/RHEL 7 还需加kvm组) - 验证连通性:
virsh -c qemu:///system list应返回空列表,而非 “connection refused”
配置桥接网络让虚拟机获得真实局域网 IP
NAT 模式仅允许虚拟机上网,桥接模式才支持外部访问、SSH 登录、服务暴露等生产需求:
- 先查物理网卡名:
ip -br a(常见如enp0s3、ens33) -
Ubuntu 22.04+(Netplan):编辑
/etc/netplan/01-network-manager-all.yaml,添加桥接定义,并将原网卡设为 slave -
RHEL/CentOS 8+(nmcli):执行三步
sudo nmcli connection add type bridge autoconnect yes con-name br0 ifname br0sudo nmcli connection add type bridge-slave autoconnect yes con-name br0-port ifname enp0s3 master br0sudo nmcli connection up br0 - 验证:
ip a应看到br0接口有 IP,且状态为 UP
用 virt-install 创建第一台虚拟机(命令行标准流程)
避免磁盘路径权限错误和网络后端不匹配这两个高频坑:
- 磁盘路径推荐默认位置:
/var/lib/libvirt/images/,确保该目录可写且属主为root:libvirt - 典型命令示例(以 Ubuntu Server 22.04 为例):
sudo virt-install \--name ubuntu22 \--ram 2048 \--vcpus 2 \--disk path=/var/lib/libvirt/images/ubuntu22.qcow2,size=30 \--os-type linux \--os-variant ubuntu22.04 \--network bridge=br0 \--graphics none \--console pty,target_type=serial \--location 'http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' \--extra-args 'console=ttyS0,115200n8 serial' - 安装过程中可通过
sudo virsh console ubuntu22进入文本控制台完成交互式安装 - 装完后常用管理命令:
virsh start ubuntu22、virsh shutdown ubuntu22、virsh list --all


















