长期以来,我从嵌入式系统收集了许多原始磁盘映像克隆,每个约 2 GB:
root141221.dd 2048901120
root150221.dd 2048901120
root160408.dd 2048901120
root170821.dd 2048901120
…
由于运行之间几乎没有变化,我认为将其转换为单个qcow2带有快照的图像。
第一步很简单:
$ qemu-img convert -p -O qcow2 root141221.dd root.qcow2
$ qemu-img snapshot -c root141221 root.qcow2
$ qemu-img info root.qcow2
image: root.qcow2
file format: qcow2
virtual size: 1.91 GiB (2048901120 bytes)
disk size: 1.89 GiB
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK ICOUNT
1 root141221 0 B 2023-10-04 01:25:52 00:00:00.000 0
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
怎么办?如何将第二个映像写入第一个 qcow2 映像,以便它能够识别共享部分并仅存储修改?
我尝试过qemu-img dd …
,但这覆盖了整个图像。我还认为有一种方法可以做到这一点qemu-img rebase …
,但如果我没有记错的话,它将创建一个新文件,尽管是一个只有区别的小文件。我想要它在一个文件中。
我必须使用一些循环安装技巧吗?我实际上不能山图像,因为数据并不是真正可识别的文件系统,但也许我可以将其设置为块设备?