服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-19 更新于 2026-10-19 简米科技 3,626 字 9 分钟阅读

如何保存qemu虚拟机?详细步骤有哪些?,qemu虚拟机保存方法?

导读保存QEMU虚拟机并不像点击“保存”按钮那样简单,核心思路是:保存虚拟机镜像文件与配置文件,并掌握快照(Snapshot)与导出(Export)两种主流方案,前者用于日常备份,后者用于迁移或分发,QEMU虚拟机保存的核心逻辑QEMU虚拟机由两个核心部分构成:磁盘镜像文件(如qcow2格式)和虚拟机配置(内存、C……

保存QEMU虚拟机并不像点击“保存”按钮那样简单,核心思路是:保存虚拟机镜像文件与配置文件,并掌握快照(Snapshot)与导出(Export)两种主流方案,前者用于日常备份,后者用于迁移或分发。

QEMU虚拟机保存的核心逻辑

QEMU虚拟机由两个核心部分构成:磁盘镜像文件(如qcow2格式)和虚拟机配置(内存、CPU、启动参数等),保存虚拟机,本质上就是完整保留这两部分,但QEMU本身没有图形界面,许多用户是在命令行或通过 virt-manager 等工具操作,因此保存方式也因使用场景而异。

如果你只是临时关机,那么直接使用 virsh shutdown 或正常关机即可,配置文件与磁盘数据已经落盘,不需要额外操作,但如果你需要“保存当前运行状态”或者“备份整个虚拟机”,则必须掌握以下专业方法。

如何保存正在运行的QEMU虚拟机状态

使用 QEMU Monitor 保存内存状态

当虚拟机运行到关键节点,你想暂停并保存完整状态(包括内存中的数据和CPU寄存器),可以使用 QEMU 的 savevm 功能,操作步骤如下:

  1. 进入QEMU监视器:在运行虚拟机的终端按下 Ctrl + Alt + 2,或通过 -monitor stdio 参数打开。
  2. 输入命令 savevm <快照名称>,savevm before-update。
  3. 系统会创建一个包含磁盘状态和内存状态的完整快照文件,默认与磁盘镜像同目录。

加载该状态时,在启动QEMU时添加参数 -loadvm <快照名称>,虚拟机即可恢复到保存时刻,这种方式的优点在于不需要关闭虚拟机,适合测试场景或暂停长时间任务。

结合 libvirt 管理虚拟机快照

如果你使用 libvirt 工具集管理QEMU虚拟机,保存状态更简单。virsh snapshot-create-as 命令可以同时保存内存与磁盘状态:

virsh snapshot-create-as <虚拟机名称> --description "升级前备份" --atomic

如何保存qemu虚拟机?详细步骤有哪些?,qemu虚拟机保存方法?

该命令会自动创建磁盘快照与内存快照,恢复使用:

virsh snapshot-revert <虚拟机名称> <快照名称>

行业共识认为,快照并不能替代完整备份,因为快照依赖原始磁盘文件,一旦原始文件损坏,快照也会连带失效,所以日常保存虚拟机,仍需要做镜像文件级别的备份。

如何完整保存QEMU虚拟机镜像与配置文件

查找并备份磁盘镜像文件

QEMU默认使用 qcow2格式,镜像文件通常存储在:

  • 自定义路径:启动命令中的 -drive file=/path/to/disk.qcow2
  • 默认路径:当前工作目录或 libvirt 的 /var/lib/libvirt/images/

备份命令直接使用 cp即可:

cp /var/lib/libvirt/images/ubuntu.qcow2 /backup/ubuntu.qcow2

但在线复制一个正在运行的qcow2镜像可能产生不一致状态,推荐先关闭虚拟机,再做文件级备份,如果无法停机,可以使用 qemu-img 自带的快照合并功能:

qemu-img create -f qcow2 -b ubuntu.qcow2 ubuntu_snapshot.qcow2

然后对 ubuntu_snapshot.qcow2 进行备份,这个命令不会锁定原镜像,适合在线备份场景。

导出虚拟机配置文件

如果你通过命令行手动启动QEMU,配置信息就是那条复杂的启动命令。建议将启动命令保存为shell脚本,并注释每一项参数,

#!/bin/bash
qemu-system-x86_64 
  -name ubuntu-server 
  -m 2048 
  -smp 2 
  -drive file=/backup/ubuntu.qcow2,format=qcow2 
  -netdev user,id=net0 
  -device e1000,netdev=net0

如果你的QEMU虚拟机由 virt-manager 创建,配置保存在:

/etc/libvirt/qemu/<虚拟机名称>.xml

导出该XML文件:

virsh dumpxml ubuntu-server > ubuntu-server.xml

以后恢复时,用 virsh define ubuntu-server.xml 即可重新注册虚拟机,再配合镜像文件,这相当于一次完整的虚拟机移植。

如何保存qemu虚拟机?详细步骤有哪些?,qemu虚拟机保存方法?

保存QEMU虚拟机的三种场景化方案对比

针对不同需求,推荐的保存方式差异较大,下表整理了三种典型场景:

场景 保存方案 优点 缺点 适用人群
日常快速关机 正常关机 无需额外操作 未保存运行时内存数据 绝大多数开发测试用户
备份到另一台电脑 qemu-img convert -O qcow2 导出 镜像独立、可跨平台 需要停机或使用在线快照 需要迁移虚拟机的用户
保留精确运行状态 savevm + 内存快照 可恢复至毫秒级状态 快照文件体积大 数据库升级、软件测试等场景

如何使用 qemu-img convert 制作可迁移的保存副本

很多人误以为 cp 复制qcow2就可以迁移虚拟机,但遇到未知大小差异或压缩需求时,直接用 qemu-img convert 更稳妥:

qemu-img convert -f qcow2 -O qcow2 ubuntu.qcow2 ubuntu-backup.qcow2

这条命令会生成一个优化过的副本,如果没有备份好的网络环境,相比在百度谷歌搜索“qemu虚拟机怎么保存”后才临时找命令,提前掌握这个通用命令能避免数据丢失。

保存QEMU虚拟机时的常见错误与避坑

错误快照导致磁盘空间暴涨

假设你反复执行 savevm 而不清理旧快照,qcow2文件会迅速膨胀。必须定期用 virsh snapshot-list 检查并删除无用快照,删除命令:

virsh snapshot-delete <虚拟机名称> <快照名称>

配置文件与镜像文件分离

如果你只备份了配置文件,却忘了备份磁盘镜像,那么恢复时虚拟机无法启动,反过来,只备份镜像,配置文件丢失,那么内存分配、网络设置、设备参数全部丢失。行业专家指出:完整的保存必须包含镜像文件、配置XML(或启动脚本)、以及网络/存储策略描述三部分

如何保存qemu虚拟机?详细步骤有哪些?,qemu虚拟机保存方法?

。

关于保存QEMU虚拟机的几个高频疑问

QEMU虚拟机的快照和保存有什么区别?

快照是保存某一时刻的磁盘与内存状态,通常依赖于原始镜像文件,创建和恢复速度较快,适合短时间回滚,而“保存”在这里更偏向于完整的备份与导出一份独立的镜像副本,两者不能混为一谈,如果你需要将虚拟机迁移到物理位置不同的另一台服务器,就应该用 qemu-img convert 导出完整副本,而不是只复制快照。

不关闭虚拟机的情况下能保存吗?

可以,较为稳妥的办法是先创建qcow2外部快照,再备份外部快照文件,操作如下:

virsh blockcopy <虚拟机名称> vda /backup/ubuntu-online.qcow2 --wait --pivot

blockcopy 是libvirt提供的在线块复制功能,它能把运行中虚拟机的磁盘实时复制到目标文件,复制完成后自动切换回原设备,此方法适合无法停机的生产环境,但要求宿主机的IO能力足够强。

保存后如何验证备份文件可用?

运行虚拟机的备份环境验证是最直接的方法,在另一台电脑上,用你保存的配置XML和镜像文件启动虚拟机,然后执行 fsck 或 smartctl 检查磁盘一致性,具体命令:

virsh define ubuntu-server.xml
virsh start ubuntu-server

如果启动成功并进入系统,说明保存过程可靠,多数情况下,只要镜像文件与配置匹配,恢复过程不会出现大问题。

保存QEMU虚拟机的核心并不在于某个单一命令,而在于理解镜像文件、配置文件和运行状态三者之间的关系,日常开发用正常关机即可保证数据安全,需要精确回滚时用 savevm,跨机器迁移则必须使用 qemu-img convert 或 virsh dumpxml 组合完成,只要形成一套“先导出配置,再备份镜像,最后验证恢复”的流程,你的QEMU虚拟机无论遇到物理故障还是版本升级,都能从容应对。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱