使用 DiskGenius 格式化磁盘分区,使其最大簇大小为 2048KB (2MB)。我注意到 Windows 本身也可以在磁盘管理中格式化具有此簇大小的 NTFS。此设置在 Windows 10、CHKDSK 和 DiskGenius 上工作正常,但 Linux 和其他分区工具(包括 AOMEI)无法识别。
查看 NTFS 引导扇区,我看到记录了每簇 244 个(十六进制 F4)扇区,当然扇区为 512 字节。但是,该值太小,仅表示每簇 122KB,这是一个无效值。但是,不知何故,这在 Windows 中运行良好。
是否存在针对每个簇扇区的较新的 NTFS 参数块? 按照指示,每个簇需要 4,096 个扇区来实现 2MB 簇,而这个值无法容纳在引导记录中的单个字节中。
答案1
摘录自NTFS:大簇
从 Windows 10“Redstone 3”(秋季创意者更新)[2017 年秋季] 开始,可以使用以下簇大小之一创建 NTFS 卷:128K、256K、512K、1M、2M。以前,支持的最大簇大小为 64K。
...
此更新还改变了“每簇扇区数”字段(位于 NTFS 引导扇区中)的处理方式。以前,这是一个无符号字节,其值按字面处理。现在,这是一个有符号字节,其值的使用方式如下伪代码所示:
// Argument: // - SectorsPerCluster: a signed byte (from the offset 13 in an NTFS boot sector). // Return value: // - A true number of sectors per cluster. NtfsGetTrueSectorsPerCluster(SectorsPerCluster) { if ((unsigned)SectorsPerCluster > 0x80) return 1 << -SectorsPerCluster else return (unsigned)SectorsPerCluster }
所以这似乎可以解释这一点。每个簇存储的扇区值不是 244,而是 -12。2^12 是 4096,这正是 2MB 簇大小应有的值。
有了这种新设计,他们可以允许簇大小变得更大(例如,ExFAT 允许最大 32MB 簇),不知道为什么微软决定不允许 NTFS 下至少有这么多簇。无论如何,至少我找到了答案,文件系统中没有任何东西损坏,大多数工具都会告诉你,因为似乎大多数产品仍然错过了 4 年前的公告……