Filesystems 将0写入磁盘(现有文件除外)
我有一个ext4磁盘分区。我想“添加”它的一个图像。为了提高映像的压缩比,我想将0写入文件系统或GPT/MBR无法识别的所有位。这可能吗?如何可能?如果你不坚持100%完美的解决方案,这也很容易: 步骤1:磁盘映像上未使用的空间Filesystems 将0写入磁盘(现有文件除外),filesystems,compression,disk,Filesystems,Compression,Disk,我有一个ext4磁盘分区。我想“添加”它的一个图像。为了提高映像的压缩比,我想将0写入文件系统或GPT/MBR无法识别的所有位。这可能吗?如何可能?如果你不坚持100%完美的解决方案,这也很容易: 步骤1:磁盘映像上未使用的空间 对映像运行fdisk-l,查找映像上未分配给分区的空间 使用dd将/dev/zero复制到这些部分 在典型的图像上,这可能很少,因此跳过这一步非常合理 步骤2:文件系统中未使用的空间 以前的fdisk-l的输出为您提供了足够的信息,可以找到到losetup的偏移量
- 对映像运行
,查找映像上未分配给分区的空间fdisk-l
- 使用
将dd
复制到这些部分/dev/zero
- 在典型的图像上,这可能很少,因此跳过这一步非常合理
- 以前的
的输出为您提供了足够的信息,可以找到到fdisk-l
的偏移量大小,以及到每个承载文件系统的分区的循环设备losetup
- 对于映像中的每个文件系统,将此循环设备装载到临时装载点
- 现在运行
,直到它在“设备上没有剩余空间”的情况下停止。对于没有稀疏文件的文件系统,可以删除ddif=/dev/zero of=/your/mountpoint/zero.fill bs=1M oflag=sync
oflag=sync
- 执行
rm-f/your/mountpoint/zero。填充
以删除此文件
- 大部分分区未使用的空间
- 大部分分配给文件系统但未使用的空间