了解基本存储驱动器结构

了解基本存储驱动器结构

当我使用 SPFDisk 提供的应用程序以及主板附带的驱动程序磁盘上的 Free DOS 副本时,我遇到了一种不太合理的情况。我尝试手动使用应用程序中的“填充”功能将驱动器上的每个扇区归零,但无法让应用程序接受磁盘最后一个扇区上显示的扇区值。最后一个扇区上显示的值为 60,800 个柱面、254 个磁头、63 个扇区和 976,768,064 个 LBA 扇区,该数量旁边的括号中有一个十六进制值。这是针对 500G 驱动器的。

当我跳回到磁盘的开头并尝试输入 LBA 扇区值时,系统提示我填充多少个扇区,它不接受任何接近的值,经过多次迭代,我终于找到了它可以接受的数字,即 4,194,303。有人能解释一下为什么输入磁盘最后一个扇区显示的 LBA 扇区值或某个倍数不会被接受,以及为什么 4,194,303 这个值是最大的数字吗?

答案1

4,194,303 的十六进制表示为 0x3FFFFF。0 到 4,194,303 之间的值可以用 22 位表示,但任何更高的值都需要第 23 位。看来您的SPFDisk程序此时存在某种限制。

因此,该SPFdisk程序可能无法处理大于 2 GiB 的磁盘。

历史记录:C/H/S 几何值在磁盘大小为 504 MiB(528 MB)时出现问题。这是因为尽管传统 BIOS 接受的最大 C/H/S 几何是 1024/255/63(磁盘大小为 7.8 GiB),但 IDE 硬件的最大几何为 65536/16/255(磁盘大小为 127.5 GiB)。最初的 BIOS 实现导致了这些限制的组合,导致最大几何为 1024/16/63(磁盘大小为 504 MiB)。1994 年 7 月,IDE 制造商开发了“几何转换”技术,允许使用更大的磁盘。

但在 7.8 GiB 点,C/H/S 几何结构完全停止工作,因为使用此几何结构的 BIOS 调用的值具有固定的位数(+ 需要保持与某些旧 DOS 错误的兼容性)。此时,前进的方向是开始完全忽略 C/H/S 几何结构,转而使用具有更多可用位的较新的 LBA 样式接口。

问题在于,在SPFdisk精确的尺寸范围内,仍然可以使用 BIOS 级几何转换来使用 C/H/S 几何,而 LBA 块号还不是首选方式。事实上,SPFdisk即使显示器C/H/S 值表明它是一个相当旧的程序,可能无法处理需要 LBA 访问才能处理其全部容量的现代磁盘。

@grawity 在评论中发布的链接对个人计算机历史上各种磁盘大小限制进行了很​​好的介绍。

相关内容