KVM安装是为了在Ubuntu宿主机中安全高效运行多个隔离Linux虚拟环境;需先确认CPU支持(egrep -c '(vmx|svm)' /proc/cpuinfo>0)、kvm-ok通过、lsmod显示kvm_intel/kvm_amd,再安装qemu-kvm、libvirt-daemon-system等全套组件,启用libvirtd服务,将用户加入libvirt和kvm组并重登,最后配置默认NAT网络与存储池,运行virt-manager验证连接成功。

在Ubuntu系统上安装KVM虚拟机,是为了在宿主机中安全、高效地运行多个隔离的Linux虚拟环境,比如部署测试集群、复现生产问题或运行旧版系统;不装KVM就只能用性能差、兼容性弱的QEMU纯软件模拟,连CPU虚拟化加速都用不上。
确认硬件和内核支持
执行 egrep -c '(vmx|svm)' /proc/cpuinfo,输出必须大于0,否则KVM无法启用——这是硬性前提,【BIOS里未开启Intel VT-x或AMD-V时,该命令永远返回0】。
运行 kvm-ok(如提示未安装则先 sudo apt install cpu-checker -y),看到 “KVM acceleration can be used” 才算真正通过。
检查内核模块:运行 lsmod | grep kvm,必须出现 kvm_intel(Intel CPU)或 kvm_amd(AMD CPU),缺一则说明内核未加载KVM支持。
安装核心组件与服务
更新源并安装全部必需包:sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
这一步不能只装其中几个——【漏装 libvirt-daemon-system 会导致 libvirtd 服务根本不存在,后续所有 virsh 命令全报错】。
启动并设为开机自启:sudo systemctl enable --now libvirtd
验证服务状态:sudo systemctl status libvirtd,确保显示 active (running);若失败,先查日志 journalctl -u libvirtd -n 50。
配置用户权限与组成员
将当前用户加入两个关键组:sudo usermod -aG libvirt,kvm $USER
这步做完必须注销当前桌面会话或重启终端,否则组权限不生效——直接新开终端窗口也不行,得彻底退出GNOME/KDE再重登。
验证是否生效:groups 输出里应同时包含 libvirt 和 kvm;若没有,说明没重新登录,别往下走。
初始化默认网络与存储
第一步:启用默认NAT虚拟网络sudo virsh net-start defaultsudo virsh net-autostart default
第二步:创建标准存储池sudo mkdir -p /var/lib/libvirt/imagessudo chown libvirt-qemu:libvirt-qemu /var/lib/libvirt/images
第三步:定义并激活存储池sudo virsh pool-define-as default dir --target /var/lib/libvirt/imagessudo virsh pool-autostart defaultsudo virsh pool-start default
执行完后运行 virsh pool-list --all,能看到 default 池状态为 active;如果报 “permission denied”,说明上一步 chown 没做对,目录属主不是 libvirt-qemu。
启动图形管理器并验证连接
直接在终端输入:virt-manager
首次运行会弹出“连接到 localhost (QEMU)”窗口,点“连接”;如果提示“Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’”,说明用户没进 libvirt 组或没重登。
连接成功后,左下角状态栏显示 “QEMU/KVM on localhost”,右侧列表为空——这就对了,说明KVM平台已就绪,可以开始新建虚拟机。











