【问题标题】:CHS to LBA mapping - (Disk Storage)CHS 到 LBA 的映射 -(磁盘存储)
【发布时间】:2015-12-15 00:18:09
【问题描述】:

在 LBA 之前,您只需拥有磁盘的物理映射,它最初在一台旧的 IBM-PC 兼容机器上看起来如下所示:

  • 气缸数:(10 位)
    • 0-1024 (1024 = 2^10)
  • 磁头编号:(8 位)
    • 0-256 (256 = 2^8)
  • 扇区号(6 位)
    • 0 通常为“boot sector”保留(c-0,h-0,s-0)
    • 1-64 (63 = 2^6 - 1) *0 保留

总 CHS 地址位: 24 位


过去平均(文件|块|扇区)大小为 512B。

来自wikipedia的示例:

512(bytes) × 63(sectors) x 256(heads) × 1024(cylinders) = 8064 MiB (yields what is known as 8 GiB limit) 

当我在 LBA 公式中称为 heads-per-cylinder 时,我对 head 的实际含义感到困惑。这对我来说没有意义,因为据我所知,头部是 head,除非它是可移动媒体,否则每个 盘子 都有两个(顶部,底部)对于它的每个表面。

在我看来,将它们称为heads-per-diskheads-per-surface 会更有意义,因为圆柱体穿过整个磁盘(多个盘片)。


逻辑块寻址:

公式:A = (c ⋅ Nheads + h) ⋅ Nsectors + (s − 1)

  • A - 逻辑块地址
  • Nheads - 磁盘上的磁头数 heads-per-disk
  • Nsectors - 磁道上的扇区数 sectors-per-track
  • c,h,s - 是气缸、气缸盖、扇区号 24-bits total (10+8+6)

here上的第一个例子:

For geometry 1020 16 63 of a disk with 1028160 sectors CHS 3 2 1 is LBA  3150=(3× 16+2)× 63

几何:

  • 气缸编号 - 1020 (0-1024)
  • 头数 - 16 (0-256)
  • 扇区号 - 63 (1-64)

这些几何如何将 CHS 编号映射到要在此公式中使用的 CHS 元组 (3,2,1)?

【问题讨论】:

    标签: filesystems storage disk hard-drive sector


    【解决方案1】:

    我不认为正面是一个字面意义上的数字。我拆开几个来打捞钕磁铁,只见过一个磁盘,除了大的 5-1/4 英寸驱动器。和2个头。柱面从 0 开始,但磁头和扇区从 1 开始。一些早期的 Windows 版本只能处理 255 个磁头,因此数字会被玩弄。

    简答:将柱面 # 乘以磁头 # 乘以扇区 #,它接近 LBA。我尝试在此处粘贴一个 OpenBSD fdisk 列表,但它有 80 个字符宽,网页不会接受它。

    【讨论】:

      【解决方案2】:

      “头”这个词通常不是指实际的物理头,而是指盘子的两侧。所以 C,H,S 可以被认为是 P,T,S(盘片、磁道、扇区)。首先它现在缩小到一个特定的层,从磁盘中心到外部的径向磁道,然后是单个扇区。在软盘上是类似的,但没有盘片,所以你只需使用 T.S(磁道,扇区)

      【讨论】:

        猜你喜欢
        • 2012-05-15
        • 2011-05-23
        • 1970-01-01
        • 2011-10-26
        • 1970-01-01
        • 1970-01-01
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多