闲者博客 - qcow2 2022-02-23T17:09:00+08:00 Typecho https://bk1314.com/feed/atom/tag/qcow2/ <![CDATA[修改qcow2文件镜像和压缩的教程]]> https://bk1314.com/13.html 2022-02-23T17:09:00+08:00 2022-02-23T17:09:00+08:00 飞鱼 http://www.typecho.org 一、 修改镜像内容步骤

guestfish --rw -a qcow2
#镜像文件绝对路径 (例子:guestfish --rw -a /home/kvm/images/CentOS-7.8.2003-x64.qcow2)
进入后先执行run;
随后执行list-filesystems 查看分区信息;
以魔方centos7.8镜像为例,分区信息为 /dev/sda1: ext4 ,执行mount /dev/sda1 / 进行分区挂载;
接下来可以修改任意文件,例如操作ssh登录提示 vi /etc/motd
执行exit 退出
目前发现一个重点问题:在挂载xfs分区时会出现分区格式不兼容的情况。例如CentOS8官方的云镜像,默认是xfs分区格式,CentOS8与CentOS7的xfs格式不相同,会出现兼容问题 运行不成功或挂载不成功,请注意区分。

1.另外一种挂载到宿主机目录方式

guestmount -a qcow2 -m 分区  /宿主机目录
#镜像文件绝对路径 (例子:guestmount -a /home/kvm/images/CentOS-7.8.2003-x64.qcow2 -m /dev/sda1  /mnt)
#卸载命令
guestunmount /mnt

二、 清除磁盘空洞

virt-sparsify -x 原qcow2镜像文件路径 --convert qcow2 新qcow2镜像文件路径
(例子:virt-sparsify -x /home/kvm/images/CentOS-7.8.2003-x64.qcow2 --convert qcow2 /home/kvm/images/tmp.qcow2)

如果出错提示tmp不足可以参考下面这个文章

[post cid="134" /]

操作完成后,可先进行重装验证是否可以正常引导启动,最后修改新qcow2镜像文件名称

三、对qcow2镜像文件进行打包压缩

qemu-img convert -c -O qcow2 需要压缩的镜像文件路径 压缩后的镜像文件路径
(例子:qemu-img convert -c -O qcow2 /home/kvm/images/tmp.qcow2 /home/kvm/images/CentOS-7.8.2003-x64.qcow2)
]]>