使用qemu-img改变镜像文件大小

有时我们的raw文件比如虚机镜像比较大,但是它的disk size却不是很大,我们需要给他做一些精简。

首先查看下raw文件的信息:

$ qemu-img info test.raw
image: test.raw
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 1.1G

可以看出他的真实大小只有1.1G,如果把其转换成qcow2格式,那边一目了然:

$ qemu-img convert -f raw test.raw -O qcow2 test.qcow2
$ qemu-img info test.qcow2
image: test.raw
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.1G
cluster_size: 65536
Format specific information:
    compat: 1.1
        lazy refcounts: false
$ du -h test.qcow2
1.1G    test.qcow2

virtual_size就是qcow2转换成raw后,这个文件的大小,raw文件大小改变需要这样:

$ qemu-img resize test.raw -5G
Image resized.
$ qemu-img info test.raw
image: test.raw
file format: raw
virtual size: 15G (16106127360 bytes)
disk size: 1.1G
$ du -h test.raw
15G    test.raw

$ qemu-img resize test.raw +5G
Image resized.
$ qemu-img info test.raw
image: test.raw
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 1.1G
$ du -h test.raw
20G    test.raw

如果是qcow2格式的文件,可以使用shrink来减容:

$ qemu-img convert -c -O qcow2 source.qcow2 shrunk.qcow2

Previous topic

python实现精简的https服务器

Next topic

python面试题总结

This Page