我一直在使用 Truecrypt 创建小型 NTFS 分区(<16 MiB),我发现在 12 MiB 左右时,可用空间量不但没有增加,反而减少了。似乎 NTFS 文件系统正在使用某些东西,但是什么呢?
NTFS
Total | File | Free
4 MB | 3.74 MB | 1.01 MB
8 MB | 7.74 MB | 4.01 MB
9 MB | 8.74 MB | 4.95 MB
12 MB | 11.74 MB | 1.95 MB
15 MB | 14.74 MB | 4.95 MB
16 MB | 15.74 MB | 5.95 MB
17 MB | 16.74 MB | 6.95 MB
32 MB | 31.74 MB | 21.9 MB
- 总计 - 我的分区的大小
- 文件 - 安装时分区的大小(Truecrypt 开销?)
- 免费 - 可供使用的免费空间
在 12 MiB 标记处,可用空间量从 4.95 MiB 下降到 1.95 MiB。这很奇怪,而且违反直觉。为什么?
编辑:所有测试的簇大小均为 512 KB。
答案1
NTFS 使用根文件夹中的一些特殊文件和文件夹来存储元数据。您可以找到它们的列表这里。如果分区大小太小,其中一些可能不可用,而对于那些存在的,它们的大小可能不会根据分区大小线性缩放,或者大小是固定的
例如,$UpCase
存储不区分大小写的文件名查找的大写字符列表,并且无论分区大小如何,它的大小始终相同,因为 Unicode 中的字符数是固定的(对于特定的 Unicode 版本)。$MFT
是主文件表这是 NTFS 中最重要的东西,对于不大于 32MB 的分区,其大小默认始终为 256KB。$MFT
但如果分区中的文件太多,则以后可能会增加大小
这些文件是隐藏的,所以你需要一些特殊的取证工具,例如ntfstool进行分析。无论如何,我已经创建了像你这样的分区,并使用威兹树展示你所看到的东西
如您所见,对于 4-8-9-12-15-16-17-32MB NTFS 分区,所有前 10 个文件的大小始终相同,除了$Bitmap
(因为它标记了分区中的空闲簇,簇的数量与分区大小成比例)。在所有情况下,它们的总大小约为 2.4MB。但是,文件夹中$Extend\$RmMetadata\$TxfLog
有几个特殊标记,存在明显差异:
$TxfLog
对于 4MB 分区,没有事务型 NTFS因为剩余空间太小,无法使用- 当分区大小增加到 8 或 9MB 时,
$TxfLog.blf
会出现一个小的分区。因此,可用空间在 8MB 时会略有减少 - 当分区大小为 12MB 或更大时,将出现 2 个 TxfLog 容器文件。可用空间在 12MB 时突然减少,但此后它始终线性增加至 32MB,因为两个
TxfLogContainer*
文件的大小相同
加密分区中的大小并不完全相同,但行为是相同的
4 MB | 3.74 MB | 1.01 MB ← No $TxfLog
8 MB | 7.74 MB | 4.01 MB ← $TxfLog.blf
9 MB | 8.74 MB | 4.95 MB
12 MB | 11.74 MB | 1.95 MB ← TxfLogContainer00000000000000000001/00000000000000000002
15 MB | 14.74 MB | 4.95 MB
16 MB | 15.74 MB | 5.95 MB
17 MB | 16.74 MB | 6.95 MB
32 MB | 31.74 MB | 21.9 MB
如果您的浏览器不支持 APNG,您可以在此处单独查看屏幕截图: