将 NTFS 可用空间清零

将 NTFS 可用空间清零

zerofree 命令查找未分配的、非归零的块外部2或者外部3文件系统并用零填充它们

一台带有机械驱动器的 NTFS Windows 机器从 7 升级到 10。该驱动器很旧,我怀疑大部分可用空间实际上有数据,并且没有用零填充。

是否有可能(如何?)将可用空间归零,以便在创建图像时,尺寸最小?

NTFS-3G假设配置了 Ubuntu 或 SysRescueCD 的可启动 USB 可以通过安装 NTFS 分区(如有必要)来处理 HDD

答案1

取决于您用来创建图像的工具。通常您不需要将其归零。

例如ntfsclone(ntfs-3g 的一部分)在手册页

ntfsclone 将有效地将 NTFS 文件系统克隆(复制、保存、备份、恢复)或救援到稀疏文件、映像、设备(分区)或标准输出。它在磁盘扇区级别工作并仅复制使用的数据。未使用的磁盘空间变为零(克隆到稀疏文件),用控制代码编码(以特殊图像格式保存),保持不变(克隆到磁盘/分区)或填充零(克隆到标准输出)。

因此,可用空间将被忽略,如果您要克隆到文件,则可用空间将转换为稀疏结果中的“孔”。

Clonezilla默认情况下将使用其他克隆软件ntfsclone来创建分区映像。

答案2

你可以使用适用于 Windows 的 dd

dd if=/dev/zero of=EMPTY bs=128k
del EMPTY

应该做到这一点。

答案3

我相信这个命令做了你所描述的 Zerofree 所做的事情(即将未使用的块/簇清零,这些块/簇还不是 0),但我还没有检查代码/联系开发人员来确定。

这是一篇关于建议更改的论坛帖子,如果您想跟进开发人员,我认为这些更改已实施:https://forum.tuxera.com/viewtopic.php?f=2&t=30812&view=next

该工具称为 ntfswipe,是 ntfs-3g 的一部分,但需要正确配置它才能获得您(和我的)所需的结果。

我认为以下命令是正确的; ie 将跳过已经为 0 的未分配簇,否则仅用 0 覆盖未分配簇(默认情况下 ntfswipe 使用随机/列表字节,用于“擦除”目的)。

sudo ntfswipe -U -b 0 -v /dev/sdx#

其中 sdx# 替换为您要处理的 ntfs 分区。

答案4

[编辑] 由于安全擦除不是这里问题的一部分,这个问题实际上可能是一个复制,其答案表明ddrescue,另一个很棒的工具,可以处理潜在的故障磁盘。

Paul在Windows上给出了一个很好的解决方案(SDelete来自 sysinternals/Microsoft)。

然而,由于这个问题已经发布在“Unix & Linux”中,我想正在寻找在这些环境中工作的工具。

那么我会建议sfill来自secure-deleteDebian 软件包,使用:

  • -l将遍数减少到 2 次(一次0xff+ 最后一次)
  • -z将最后一个随机通道替换为归零通道

相关内容