删除 qcow2 图像文件的孔

Posted

技术标签:

【中文标题】删除 qcow2 图像文件的孔【英文标题】:remove qcow2 image file's holes 【发布时间】:2017-06-03 15:46:39 【问题描述】:

我使用一个名为 virt-sparsify 的工具来释放 qcow2 映像文件占用的磁盘空间。

它起作用了,文件变成了一个稀疏文件。

root@ubuntu:/test# ls -lsh test.qcow2

8.7G -rw-r--r-- 1 root root 15G Jan 19 11:05 test.qcow2

如上所示,为文件分配的磁盘大小小于其实际大小。这意味着文件中有“漏洞”。现在我想去掉里面的这些洞。有谁知道如何实现这个目的?

【问题讨论】:

【参考方案1】:

你不能真正“带走”稀疏标志。 工具试图通过保持标志活着来提供帮助,例如复制时cp。

您可以通过

轻松获得该文件的非稀疏版本
cp --sparse=never test.qcow2 test-nosparse.qcow2

与将部分归零的文件设为稀疏文件的方法相同

cp --sparse=always file.qcow2 file-sparse.qcow2

参见man cp中的“稀疏”

【讨论】:

感谢您的回答。我同意你的看法。稀疏文件具有节省磁盘空间的优点。但是在传输稀疏文件时我们需要小心。因为有些工具不支持稀疏文件,会把它转换成普通文件,比如scp。我怀疑在不同文件系统之间传输稀疏文件会发生什么。

以上是关于删除 qcow2 图像文件的孔的主要内容,如果未能解决你的问题,请参考以下文章

如何将 qcow2 转换为文件系统或存档文件

QCOW2 — qemu-img 指令行工具

QCOW2 — qemu-img 指令行工具

膨胀腐蚀开闭

如何从图像文件夹中删除图像?

删除和替换图像文件但仍显示旧图像