jay*_*ica 18 compression sparse-files files disk-image
我有一个使用创建的非常大的硬盘的压缩原始图像cat /dev/sdx | xz > image.xz
。但是,在此操作之前,驱动器中的可用空间已清零,并且图像大部分由零字节组成。将此图像提取为稀疏文件的最简单方法是什么,以使零块不占用任何空间?
Mar*_*ler 30
引用xz
联机帮助页(您确实应该咨询此类问题),我在其中快速搜索了sparse
:
--no-sparse
禁用稀疏文件的创建。 默认情况下,如果解压缩为常规文件,如果解压缩的数据包含长序列的二进制零,则 xz 会尝试使文件稀疏。只要标准输出连接到常规文件并且满足某些附加条件以确保其安全,它也可以在写入标准输出时起作用。创建稀疏文件可以通过减少磁盘 I/O 量来节省磁盘空间并加快解压速度。
(强调我的)
因此,您无需执行任何操作;用默认xz
工具解压即可。
Ste*_*ris 15
该dd
命令的 GNU、NetBSD 和 FreeBSD 实现至少有一个conv=sparse
. 引用GNUdd
手册:
sparse
尝试寻找而不是写入 NUL 输出块。在支持稀疏文件的文件系统上,这将在扩展输出文件时创建稀疏输出。conv=notrunc
将此转换与或 结合使用时要小心oflag=append
。使用 时conv=notrunc
,输出文件中与输入中的 NUL 块相对应的现有数据将保持不变。执行oflag=append
的搜索将是无效的。类似地,当输出是设备而不是文件时,不会复制 NUL 输入块,因此此转换对于虚拟或预置零设备最有用。
所以我会尝试
xz -dc < image.xz | dd of=image conv=sparse
Run Code Online (Sandbox Code Playgroud)
以这种方式使用dd
将适用于任何形式的输入(无论第一个命令本身是否可以生成稀疏文件)。
归档时间: |
|
查看次数: |
2634 次 |
最近记录: |