【发布时间】:2015-05-04 20:14:51
【问题描述】:
我有一个 ext4 磁盘分区。我想“dd”它的图像。为了提高图像的压缩率,我想将 0 写入文件系统或 GPT/MBR 无法识别的所有位。这可能吗?如何实现?
【问题讨论】:
-
这究竟是一个编程问题吗?询问Super User
标签: filesystems compression disk
我有一个 ext4 磁盘分区。我想“dd”它的图像。为了提高图像的压缩率,我想将 0 写入文件系统或 GPT/MBR 无法识别的所有位。这可能吗?如何实现?
【问题讨论】:
标签: filesystems compression disk
确实如此,如果你不坚持100%完美的解决方案,也很容易:
第 1 步:磁盘映像上的未使用空间
fdisk -l 以了解映像上未分配给分区的空间dd从/dev/zero复制到这些部分第 2 步:文件系统中未使用的空间
fdisk -l 之前的输出为您提供了足够的信息来查找到losetup 的偏移大小,每个带有文件系统的分区的循环设备dd if=/dev/zero of=/your/mountpoint/zero.fill bs=1M oflag=sync,直到它停止并显示“设备上没有剩余空间”。对于不包含稀疏文件的文件系统,您可以删除 oflag=sync。rm -f /your/mountpoint/zero.fill 删除此文件这将为您留下一个已归零的图像
【讨论】:
我不认为那是实现你想要的方式。相反,您可以在之后压缩文件。更好的是,您可以缩小分区,然后将其 dd,并在将其 dd 回驱动器时调整其大小。 Gparted 是手动工作时最简单的工具。要编写脚本,请使用 parted、tune2fs 和 e2fsck 工具。
【讨论】: