上一篇
Linux安装KVM虚拟机教程?
- Linux
- 2025-07-06
- 4307
安装KVM需确保CPU支持虚拟化,安装
qemu-kvm
、
libvirt
等包,启用
libvirtd
服务,配置网络桥接(如
br0
),最后使用
virt-manager
图形工具或
virt-install
命令创建虚拟机即可。
在Linux系统上安装KVM虚拟机的完整指南
KVM(Kernel-based Virtual Machine)是Linux内核原生支持的虚拟化技术,允许您直接在Linux主机上创建和管理虚拟机,它性能高效、资源占用低,是企业级应用和个人开发的理想选择,以下是详细的安装与配置步骤:
安装前的准备工作
-
检查CPU虚拟化支持
运行命令验证CPU是否支持虚拟化(输出结果需包含vmx
(Intel)或svm
(AMD)):egrep -c '(vmx|svm)' /proc/cpuinfo # 返回值≥1表示支持
若返回0,需进入BIOS启用虚拟化(通常在
Advanced > CPU Configuration
中开启Intel VT-x/AMD-V
)。 -
确认系统兼容性
- 操作系统:Ubuntu 18.04+/CentOS 7+ 等主流发行版
- 内核要求:Linux kernel 2.6.20+
安装KVM及相关组件
Ubuntu/Debian 系统:
sudo apt update sudo apt install -y qemu-kvm libvirt-daemon-system virtinst bridge-utils virt-manager
CentOS/RHEL 系统:
sudo yum install -y qemu-kvm libvirt virt-install bridge-utils virt-manager
关键组件说明:
qemu-kvm
:提供虚拟化核心功能libvirt
:管理虚拟机的守护进程和APIvirt-manager
:图形化管理工具(可选)bridge-utils
:配置网络桥接
启动服务并设置自启
sudo systemctl start libvirtd sudo systemctl enable libvirtd
验证服务状态:
sudo systemctl status libvirtd # 显示"active (running)"表示成功
配置网络桥接(推荐)
默认NAT网络无法从外部访问虚拟机,桥接模式可使虚拟机获得独立IP:
- 创建桥接接口
编辑网络配置(以Ubuntu为例):sudo nano /etc/netplan/01-netcfg.yaml
添加桥接配置(示例):
network: version: 2 ethernets: enp3s0: # 主机物理网卡名称 dhcp4: no bridges: br0: interfaces: [enp3s0] dhcp4: yes parameters: stp: false
- 应用配置:
sudo netplan apply
创建虚拟机
方法1:使用命令行(无图形界面)
sudo virt-install --name Ubuntu22 --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/ubuntu22.qcow2,size=20 --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"
方法2:使用图形界面(推荐新手)
- 启动Virt-Manager:
sudo virt-manager
- 点击”创建新虚拟机”,按向导选择ISO镜像、分配CPU/内存、配置存储和网络。
虚拟机管理命令
操作 | 命令 |
---|---|
启动虚拟机 | virsh start VM_name |
关闭虚拟机 | virsh shutdown VM_name |
强制停止 | virsh destroy VM_name |
删除虚拟机 | virsh undefine VM_name |
列出所有VM | virsh list --all |
控制台连接 | virsh console VM_name |
安全性与权限设置
- 避免使用root运行
将用户加入libvirt
和kvm
组:sudo usermod -aG libvirt,kvm $USER
- 启用防火墙规则
允许KVM通信(CentOS示例):sudo firewall-cmd --add-service={dhcp,dns,vnc-server} --permanent sudo firewall-cmd --reload
常见问题解决
-
错误:权限被拒绝
运行sudo setfacl -m u:$USER:rw /var/lib/libvirt/images
赋予存储目录权限。 -
虚拟机卡住无响应
检查是否启用嵌套虚拟化:cat /sys/module/kvm_intel/parameters/nested # 输出Y表示启用
未启用时加载内核模块:
echo "options kvm-intel nested=Y" | sudo tee /etc/modprobe.d/kvm.conf
-
网络桥接失效
重启NetworkManager服务:sudo systemctl restart NetworkManager
性能优化建议
- 启用KSM内存共享
echo 100 | sudo tee /sys/kernel/mm/ksm/pages_to_scan # 提高内存利用率
- 使用VirtIO驱动
在虚拟机设置中选择VirtIO
磁盘和网络接口,提升I/O性能。 - CPU绑定
通过virsh vcpupin
将vCPU绑定到物理核心,减少调度开销。
KVM为Linux提供了企业级的虚拟化能力,结合命令行工具与图形界面,可灵活管理各类工作负载,完成安装后,建议:
- 定期更新系统:
sudo apt upgrade
或sudo yum update
- 备份虚拟机镜像:复制
/var/lib/libvirt/images/
下的磁盘文件 - 探索高级功能:快照管理、虚拟网络隔离、GPU直通等
引用说明 参考以下权威来源:
- Linux内核官方文档:https://www.kernel.org/doc/html/latest/virt/kvm/
- Libvirt项目指南:https://libvirt.org/docs.html
- Ubuntu KVM社区教程:https://help.ubuntu.com/community/KVM
- Red Hat虚拟化手册:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_virtualization/