在Linux系统中使用QEMU安装虚拟机详解
QEMU是一款开源的虚拟化软件,它能够在Linux系统上模拟完整的计算机硬件环境,支持多种操作系统(如Windows、BSD、Linux等)的虚拟化运行,与KVM(Kernel-based Virtual Machine)结合使用时,QEMU能够充分利用硬件虚拟化扩展(如Intel VT-x或AMD-V),实现接近原生的性能,本文将详细介绍在Linux系统中使用QEMU安装虚拟机的完整流程,包括环境准备、镜像创建、系统安装、网络配置及优化技巧等内容。

环境准备与依赖安装
在开始使用QEMU之前,需要确保系统已安装必要的依赖包,以Ubuntu/Debian系统为例,可通过以下命令安装QEMU及相关工具:
sudo apt update sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
对于CentOS/RHEL系统,可使用以下命令:
sudo yum install qemu-kvm libvirt virt-install bridge-utils
安装完成后,验证当前用户是否属于libvirt和kvm用户组,以确保具有足够的权限操作虚拟化设备:
sudo usermod -aG libvirt,kvm $USER newgrp libvirt # 使用户组变更立即生效
建议检查CPU是否支持虚拟化扩展,通过以下命令查看:
grep -E 'vmx|svm' /proc/cpuinfo
若输出为空,说明CPU未开启虚拟化支持,需在BIOS/UEFI中启用相关选项。
创建虚拟机磁盘镜像
虚拟机的磁盘文件通常以qcow2格式存储,该格式支持动态扩容和快照功能,使用qemu-img工具创建一个20GB的磁盘镜像:
qemu-img create -f qcow2 vm_disk.qcow2 20G
-f参数指定磁盘格式,qcow2是推荐的选择,相比raw格式更节省空间且功能更丰富,若需预分配全部空间,可使用preallocation选项:
qemu-img create -f qcow2 -o preallocation=full vm_disk.qcow2 20G
安装操作系统镜像
QEMU支持多种方式安装操作系统,包括通过ISO镜像、网络PXE启动或使用现有磁盘镜像,这里以ISO镜像为例,详细说明安装步骤。
-
下载操作系统ISO文件
访问目标操作系统的官方网站(如Ubuntu、CentOS等),下载对应的ISO镜像文件,例如ubuntu-22.04.3-desktop-amd64.iso。
-
启动虚拟机安装程序
使用virt-install命令创建并启动虚拟机,该命令会自动连接到QEMU/KVM并引导安装程序:sudo virt-install \ --name ubuntu-vm \ --ram 2048 \ --vcpus 2 \ --disk path=/path/to/vm_disk.qcow2,format=qcow2 \ --cdrom /path/to/ubuntu-22.04.3-desktop-amd64.iso \ --os-variant ubuntu22.04 \ --graphics spice
参数说明:
--name:虚拟机名称,可自定义。--ram:分配的内存大小(单位为MB)。--vcpus:虚拟CPU核心数。--disk:指定磁盘镜像路径及格式。--cdrom:挂载的ISO镜像路径。--os-variant:指定操作系统类型,便于优化虚拟机配置(可通过osinfo-query os命令查看支持的列表)。--graphics:图形显示方式,spice为高性能协议,也可选择vnc或none(无界面)。
执行命令后,将弹出一个虚拟机窗口,显示操作系统的安装界面,按照提示完成分区、用户配置等步骤。
网络配置
虚拟机的网络连接方式通常分为NAT桥接和桥接模式两种。
-
NAT模式(默认)
虚拟机通过宿主机的NAT访问外部网络,无需额外配置,但外部网络无法直接访问虚拟机。 -
桥接模式
将虚拟机网络接口直接桥接到物理网络接口,使虚拟机成为局域网中的一台独立主机,配置步骤如下:-
安装
bridge-utils工具并创建网桥:sudo apt install bridge-utils sudo brctl addbr br0 sudo brctl addif br0 <物理网卡名> # 如ens33 sudo ip link set br0 up sudo dhclient br0
-
修改虚拟机配置文件(通常位于
/etc/libvirt/qemu/目录),将网络接口类型改为bridge:<interface type='bridge'> <mac address='52:54:00:xx:xx:xx'/> <source bridge='br0'/> </interface>
-
重启虚拟机使配置生效。

-
虚拟机管理与优化
-
使用
virsh管理虚拟机
virsh是libvirt提供的命令行工具,可用于管理虚拟机生命周期:virsh list --all # 查看所有虚拟机 virsh start ubuntu-vm # 启动虚拟机 virsh shutdown ubuntu-vm # 关闭虚拟机 virsh undefine ubuntu-vm # 删除虚拟机配置(不删除磁盘)
-
性能优化
- CPU/内存绑定:通过
taskset和cgroups将虚拟机进程绑定到特定CPU核心,减少上下文切换开销。 - 启用I/O缓存:在磁盘配置中添加
cache=writeback参数,提升磁盘读写性能(但可能增加数据丢失风险)。 - 使用SPICE协议:对于图形界面应用,SPICE协议比VNC性能更优,支持GPU直通(需宿主机显卡支持)。
- CPU/内存绑定:通过
-
快照与克隆
使用qemu-img创建磁盘快照,便于快速恢复虚拟机状态:qemu-img snapshot -c pre-install vm_disk.qcow2 qemu-img snapshot -l vm_disk.qcow2 # 查看快照列表
克隆虚拟机可通过
virt-clone命令实现:sudo virt-clone --original ubuntu-vm --name ubuntu-vm-clone --file /path/to/new_disk.qcow2
常见问题与解决方案
-
虚拟机启动失败
检查是否已开启KVM模块:lsmod | grep kvm,若未加载,执行sudo modprobe kvm。 -
网络无法连接
确认虚拟机网络模式配置正确,或检查防火墙规则是否阻止了流量。 -
图形界面卡顿
尝试安装qemu-guest-agent并启用SPICE协议,或调整虚拟机显存大小。
通过QEMU在Linux系统中安装虚拟机是一种灵活且高效的方式,尤其适合开发测试、系统兼容性验证等场景,本文从环境准备、磁盘创建、系统安装到网络配置和性能优化,全面介绍了QEMU的使用方法,掌握这些技能后,用户可以根据实际需求定制虚拟化环境,充分发挥QEMU的强大功能。














