硬盘-CHS和总扇区计算

硬盘-CHS和总扇区计算

我的磁盘信息程序(Linux 上的 gparted)给了我以下信息:

Total Sectors: 625142448
Cylinders: 38913
Heads: 255
Sectors/Track: 63

计算Cylinders * Heads * Sectors/Track结果625137345小于程序报告的总扇区数。

我的问题是,我如何了解正在发生的事情?我意识到外柱面有更多的扇区/磁道,但我相信所有这些信息实际上对最终用户都是隐藏的,并且由磁盘控制器进行管理。

或者说,我的问题是,如果我想访问最后一个扇区,什么 CHS 值可以让我做到这一点?

编辑:一些评论者(正确地?)想知道我为什么关心 LBA 模式。我正在编写 MBR。

我是否正确地期望所有现代设备都具有 LBA 访问权限?即 int 0x13 [ax=0x42] 调用返回 cx=0x1?

答案1

我的问题是,我如何了解正在发生的事情?我意识到外柱面有更多的扇区/磁道,但我相信所有这些信息实际上对最终用户都是隐藏的,并且由磁盘控制器进行管理。

是的。如今,分区工具中显示的 C/H/S 字段通常包含无意义的内容,而您甚至程序中根本没有它们是因为旧的(MS-DOS 时代)系统做过使用它们和用于保持 C/H/S 格式大小的 MBR 分区表。如今,分区(即使在 MBR 中)都是使用线性 LBA 地址指定的,并且读取/写入请求也是使用线性 LBA 地址发出的。

答案2

很简单,如果你取扇区总数,将其除以 255 再除以 63,则会得到 38913 个扇区柱面,因为它必须是一个整数。

相关内容