NTFS 主文件表 (MFT) 中可以完全存储的文件的最大大小

Jef*_*eff 8 windows ntfs ssd secure-erase mft

我使用的是 Windows 7 和 NTFS。我注意到 MFT 存在巨大的安全风险,因为它可以在用户不知情的情况下存储敏感文档文件很长时间,然后才会被覆盖。

我运行的所有测试都告诉我,小于 640 字节的文件驻留在 MFT 中,无法安全删除。但是,任何 640 字节或以上的文件都可以立即安全删除 - 对于我的 500GB 硬盘和 128GB 闪存驱动器(均为 NTFS)来说就是如此。

我通过创建一堆文本文件并向其中写入单词来创建不同的文件大小来测试这一点。删除它们,清空回收站并运行 Recuva,然后安全地删除突出显示的内容。它无法安全删除 640 字节以下的任何文件(文件驻留在 MFT 消息中将出现)。

对于启用 Trim 的 SSD 来说,情况是否相同?为什么是 640 字节?认为已擦除文件的 MFT 条目最大为 512 字节?

任何意见都非常感谢。

phu*_*clv 5

只要使用正确的工具,任何文件都可以安全删除。例如Sysinternals\'SDelete能够处理这个

\n
\n

在 NTFS 驱动器上,SDelete 的工作在分配并覆盖两个文件后不一定完成。SDelete 还必须使用适合 MFT 记录的文件填充 NTFS MFT(主文件表)的任何现有空闲部分。一条 MFT 记录的大小通常为 1KB,磁盘上的每个文件或目录都需要至少一条 MFT 记录。小文件完全存储在其 MFT 记录中,而不适合记录的文件则在 MFT 外部分配簇。SDelete 为处理可用 MFT 空间所要做的就是分配它能分配的最大文件 - 当文件占用 MFT 记录中的所有可用空间时,NTFS 将防止文件变大,因为没有剩余的可用簇磁盘(它们由先前分配的两个文件 SDelete 保存)。SDelete 然后重复该过程。当 SDelete 甚至无法再创建新文件时,它知道 MFT 中所有以前的空闲记录已被安全覆盖的文件完全填满。

\n
\n

您肯定选择了错误的工具,因为如果您阅读了文档,您会看到

\n
\n

雷库瓦不能:

\n
    \n
  • ...
  • \n
  • 安全删除主文件表 (MFT) 中保存的某些非常小的文件和零字节长度的文件。
  • \n
\n

Recuva 简介 - 它能做什么和不能做什么

\n
\n
\n
\n

为什么是 640 字节?认为已擦除文件的 MFT 条目最大为 512 字节?

\n
\n

MFT 中可以存储的文件(称为常驻文件)的大小根据每个文件、每个系统以及 MFT 中存储的信息而有所不同。MFT 中用于元数据的数据越多,留给文件的数据就越少,因此没有定义的限制,但通常小于大约900 字节的文件存储在 MFT 的目录条目中

\n
\n

带有驻留记录的 MFT 条目图显示了小文件或文件夹的 MFT 记录的内容。小文件和文件夹(通常为 900 字节或更小)完全包含在 file\xe2\x80\x99s MFT 记录中。

\n

NTFS 的工作原理

\n
\n

作为示例,我创建了一个1000 字节的示例文件,其中元数据非常少,可以完全存储在 MFT 中。但是,一旦我向文件添加更多元数据(硬链接、更长的名称、流、权限...),可容纳驻留文件的最大空间就会迅速减少

\n