必须安装 qemu-system-x86、qemu-utils、libvirt-daemon-system、libvirt-clients 和 virt-manager 五个包,缺一不可;仅装 qemu 或 qemu-user 无法运行 KVM 加速的系统级虚拟机。

装完就能跑虚拟机?不能。只装 qemu 或 qemu-user 这类包,qemu-system-x86_64 命令根本不存在,更别说启用 KVM 加速——你实际得到的是纯软件模拟(TCG),CPU 占满、启动卡死、鼠标失灵全是常态。
Ubuntu/Debian 上必须装哪几个包
别信 sudo apt install qemu ——它装的是用户态模拟器,不是系统级虚拟机运行时。
-
qemu-system-x86:核心模拟器二进制,提供qemu-system-x86_64命令 -
qemu-utils:含qemu-img,用于创建/转换磁盘镜像(如qcow2) -
libvirt-daemon-system和libvirt-clients:提供virsh、virt-install等命令行工具 -
virt-manager:图形界面,调试和快速建虚拟机时比命令行直观得多
一行装全:sudo apt update && sudo apt install qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients virt-manager
验证:qemu-system-x86_64 --version 有输出;ls /usr/bin/qemu-system-* 应看到 x86_64、aarch64 等;sudo systemctl is-active libvirtd 返回 active。
KVM 模块没加载或权限不对,性能差十倍
即使 CPU 支持 VT-x/AMD-V,/dev/kvm 不可读写,QEMU 就自动退到 TCG 模式——你会看到 CPU 占用 100%、启动慢、安装卡在黑屏。
- 先确认硬件支持:
grep -E "(vmx|svm)" /proc/cpuinfo有输出才继续 - 加载模块:
sudo modprobe kvm,再按 CPU 类型执行sudo modprobe kvm-intel(Intel)或sudo modprobe kvm-amd(AMD) - 加组并重登:
sudo usermod -a -G kvm,libvirt $USER,然后彻底退出当前桌面会话再重新登录(newgrp不生效) - 验证权限:
ls -l /dev/kvm应显示crw-rw----且组为kvm;再跑qemu-system-x86_64 -accel kvm -cpu host -S -monitor stdio -nographic -kernel /dev/null 2>&1 | grep "KVM",看到Using KVM才算真启用
启动虚拟机卡黑屏/鼠标失灵?缺设备模型和固件
直接 qemu-system-x86_64 -cdrom ubuntu-22.04.iso 必然失败:没磁盘、没网卡驱动、没 UEFI 固件,ISO 安装器根本起不来图形界面。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 必须指定机器类型:
-machine q35,accel=kvm(推荐)或-machine pc,accel=kvm - UEFI 启动需 OVMF 固件:
-bios /usr/share/OVMF/OVMF_CODE.fd(Ubuntu/Debian 默认路径) - 磁盘用
qcow2格式:qemu-img create -f qcow2 disk.qcow2 20G,再用-drive file=disk.qcow2,format=qcow2,if=virtio - 网卡强制用
virtio-net-pci:-netdev user,id=net0 -device virtio-net-pci,netdev=net0,比e1000快得多
最小可用命令示例:qemu-system-x86_64 -machine q35,accel=kvm -bios /usr/share/OVMF/OVMF_CODE.fd -m 2G -cpu host -drive file=disk.qcow2,format=qcow2,if=virtio -netdev user,id=net0 -device virtio-net-pci,netdev=net0 -cdrom ubuntu-22.04.iso
CentOS/RHEL 8+ 别用 yum install kvm
那个包早已废弃。RHEL 7+/CentOS 8+ 统一用模块化组安装:sudo dnf groupinstall "@virtualization"(注意引号和 @ 符号)。
它会拉齐 qemu-kvm、libvirt、virt-install、virt-manager 全套,比手动列包更可靠。
装完仍要执行:sudo systemctl enable --now libvirtd,以及 sudo usermod -aG kvm,libvirt $USER 并重登——漏掉组权限,virsh list 直接报 Permission denied。
真正麻烦的从来不是装几个包,而是每一步都得验证是否生效:CPU 虚拟化开了没、KVM 模块加载了没、/dev/kvm 权限对不对、OVMF 固件路径存不存在、virtio 驱动有没有被 Guest OS 识别——少一个环节,虚拟机就只是个会发热的进程。

















