如何创建KVM虚拟机的.qcow2镜像并通过virt-install恢复原虚拟机
操作步骤
一、创建原KVM虚拟机的qcow2镜像备份
确保虚拟机数据一致
- 优先关闭目标虚拟机(避免磁盘数据不一致):
virsh shutdown <你的虚拟机名称> - 若无法关机,可临时暂停虚拟机(关机更稳妥):
virsh suspend <你的虚拟机名称>
- 优先关闭目标虚拟机(避免磁盘数据不一致):
定位原虚拟机的磁盘路径
执行命令查看虚拟机的磁盘设备及对应路径:virsh domblklist <你的虚拟机名称>输出示例:
Target Source ------------------------------------------------ vda /var/lib/libvirt/images/original-vm.qcow2记录
Source列的磁盘路径。生成qcow2格式备份镜像
使用qemu-img convert命令完成备份(支持压缩,若原镜像已是qcow2也适用):# 基础备份 qemu-img convert -O qcow2 <原磁盘路径> <备份镜像路径,如/backup/vm-backup.qcow2> # 带压缩的备份(生成更小的镜像文件) qemu-img convert -O qcow2 -c <原磁盘路径> <备份镜像路径>
二、使用virt-install结合备份镜像与ISO恢复虚拟机
运行virt-install命令,指定备份镜像、ISO文件及硬件参数:
virt-install \ --name <新虚拟机名称> \ --memory 2048 \ # 内存大小(MB),按需调整 --vcpus 2 \ # CPU核心数,按需调整 --disk path=/backup/vm-backup.qcow2,format=qcow2 \ --cdrom /path/to/your/os.iso \ # 对应系统的ISO文件路径 --boot hd,cdrom \ # 优先从备份磁盘启动,失败则从ISO引导(用于系统修复) --graphics vnc,listen=0.0.0.0 \ # 启用VNC远程连接,按需调整 --network bridge=virbr0 \ # 使用默认桥接网络,按需替换为你的桥接设备 --os-variant ubuntu22.04 # 对应系统版本,可通过`osinfo-query os`查询支持选项
关键参数说明
--boot hd,cdrom:优先尝试从备份磁盘启动,原系统引导正常则直接进入;若引导失败,可通过ISO进入救援模式修复。--os-variant:指定系统版本能帮助libvirt优化虚拟机配置,执行osinfo-query os可列出所有支持的系统变体。- 若无需图形界面,可替换
--graphics参数为--graphics none --console pty,target_type=serial,通过串口连接虚拟机。
三、后续操作
- 虚拟机启动后,若原系统正常引导,后续启动可移除
--cdrom参数,直接从备份磁盘启动。 - 若需修复系统,进入ISO的救援模式,挂载备份磁盘进行引导修复或配置调整。
内容的提问来源于stack exchange,提问作者kunal bauskar
相关产品推荐
相关产品推荐

