当每个磁道的扇区数为 63 时,为什么我应该将 SSD 与 128 个扇区的偏移量对齐?

n61*_*007 1 ssd diskpart partitioning alignment windows-xp

对于带有 SSD 的 Windows XP,建议您手动对齐分区(或使用例如 7 进行分区)。

背景

据解释,XP 的默认对齐方式需要使用两个“磁盘操作”(一般来说)而不是一个,因为它像这样对齐分区:

NAND 页面与分区对齐

来源来自“微米”

然后指南建议您使用128diskpar.exe的偏移量来设置更好的分区对齐。例如这个

具有 128 个偏移量的 diskpar

问题

我不明白的是,如果每个磁道有 63 个扇区,如 diskpar 信息打印输出所示,那么两条磁道占用 126 个扇区,因此我想第三个磁道应该从偏移量 127 开始。

思维

我以为我可能会搞乱索引,这是我的想法。首先,我认为SectorsPerTrack和 都offset被索引为 base-1,因为前者只作为这样的计数器才有意义,而后者应该告诉我哪个是我想要开始的扇区数。128 没有意义,因为我跳过 2*63 扇区的扇区的计数值为 127。

然后我断言它SectorsPerTrack的索引是 base-1,但是offsets 的索引是 base-0。(好吧,“偏移量”可能不完全是“索引”,但它的值可以是 0。)所以偏移量可以被认为是“要跳过多少扇区”。如果不跳过任何扇区,则偏移量为 0。如果跳过第一个扇区,则偏移量为 1。如果我想跳过报告包含 63 个扇区的轨道,那么我的偏移量应为 63。如果我想跳过跳过两条轨道,我的偏移量应该是 126。但是现在已经减少了2到 128。

我想过SectorsPerTrack可能会被 0 索引。但这没有意义。“每个磁道 0 个扇区”应该意味着只有 0 个扇区。没有理由在这里使用基于 0 的索引,因为它只会毫无意义地引入混乱。

编辑一些有意义但我无法确认的是:如果 NAND 页面很重要并且它们的大小为 4096 字节,我应该将扇区和轨道视为纯粹的遗留信息,甚至可能是假的并且什么都没有与对齐的原因有关,那么 128 个扇区(每个 512 字节)是 16 个 NAND 页,会将分区放在下一个 NAND 页的开头,这可能是真正的原因。如果是这种情况,有人可以用一些参考信息/来源/引文来支持它吗?

所以最后,我不明白:为什么这些指南建议使用 128 扇区偏移量?

maa*_*nus 6

我不明白的是,如果每个磁道有 63 个扇区,如 diskpar 信息打印输出所示,那么两条磁道占用 126 个扇区,因此我想第三个磁道应该从偏移量 127 开始。

每个磁道的 63 个扇区位于旧的 BIOS 谎言中,与现实无关。只是几千年前有人为此字段保留了 6 位。与此同时,磁盘变得更大,每个磁道的扇区数毫无意义,因为外(更长)磁道上的扇区比主轴轴附近的扇区更多。有了 SSD,这一切变得更加荒谬。

为了能够使用大磁盘,必须将数量最大化。这就是为什么所有磁盘似乎每个磁道都有 255 个磁头和 63 个扇区的原因。这些是地雷:

Disk /dev/sde: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Run Code Online (Sandbox Code Playgroud)

你不会真的相信我所有的磁盘都是这样的。

也许我的 SSD 问题中的链接会有所帮助。