迅维网

标题: 数据恢复学习笔记之线性地址(LBA)与C/H/S地址之间的转换 [打印本页]

作者: kaka198    时间: 2010-1-9 23:47
标题: 数据恢复学习笔记之线性地址(LBA)与C/H/S地址之间的转换
数据恢复学习笔记之线性地址(LBA)与C/H/S地址之间的转换
系统在写入数据时是按照从柱面到柱面的方式,在上一个柱面写满数据后才移动磁头到下一个柱面,并从下一柱面的第一个磁头的第一个三扇区开始写入,从而使磁盘性能优化,所以,在对物理扇区进行线性编址时,也按照这种方式进行。即把第一柱面(0C)第一磁头(0H)的第一扇区(1S)编为逻辑“0”扇区,第一柱面(0C)第一磁头(0H)的第一扇区(2S)编为逻辑“1”扇区,直到第一柱面(0C)第一磁头(0H)的第一扇区(63S)编为逻辑“62”扇区,然后转到第一柱面(0C)第一磁头(1H)的第一扇区(1S),接着上一面编为逻辑“63”扇区,0柱面所有扇区编号完毕后转到1柱面的0磁头1扇区,依次往下进行,直到把所有扇区都编上号。
其次要注意C/H/S中的扇区编号是从1到63,而LBA方式下扇区从0开始编号,所有扇区顺序进行编号。
(1)        从c/h/s到LBA
从编号规则很容易看出C/H/S与LBA地址的对应关系,用C表示当前柱面号,H表示当前磁头号,S表示当前扇区号,Cs表示起始柱面号,Hs表示起始磁头号,Ss表示起始扇区号。PS表示每磁道有多少扇区,PH表示每柱面有多少个磁道,则有:
LBA=(C-Cs)*PH*PS+(H-HS)*PS+(S-SS)
一般情况下,Cs=0,Hs=0,Ss=1,PS=63,PH=255,LBA计算如下:
C/H/S=0/0/1时带入公式可得LBA=0
C/H/S=0/0/63时带入公式可得LBA=62
C/H/S=0/1/1时带入公式可得LBA=63
C/H/S=0/5/1时带入公式可得LBA=315
C/H/S=130/30/1时带入公式可得LBA=2090340
系统在管理扇区(簇)时就是按照LBA地址进行的,而在最终写入(或读出)硬盘进行ATA调用时需要C/H/S参数。
(2)从LBA到C/H/S
先介绍两种运算:DIV和MOD(这里指对整数的操作)。DIV称做整数运算,即被除数除以除数所得商取整数部分。如5 DIV 2=2,22 DIV 7=3。MOD就是取余运算,即取商的余数。如:5 DIV 2=1,22 DIV 7=1。
哥变量仍按上述假设进行,则有:
C=LBA DIV(PH*PS)+Cs
H=(LBA DIV PS) MOD PH+Hs
S=LBA MOD PS+Ss
如不用MOD运算,只用div运算,也是可以的,只不过是运算复杂程度不同。
C=LBA DIV(PH*PS)+Cs
H=LBA DVI PS –(C-Cs)*PH+Hs
S=LBA-(C-Cs)*PH*PS-(H-Hs)*PS+Ss
按照这个规律,有:
LBA=0,则C/H/S=0/0/1
LBA=62,则C/H/S=0/0/63
LBA=63,则C/H/S=0/1/1
LBA=315,则C/H/S=0/5/1
后续还会有。相互学习相互进步啊。。。。。。下面是今天的笔记,doc格式

数据恢复学习笔记之线性地址(LBA)与CHS地址之间的转换.rar

10.42 KB, 下载次数: 5, 下载积分: 下载分 -2 分, 下载 1 次


作者: 维修公司    时间: 2010-1-10 00:12
现在的硬盘 都不用C/H/S表示了
作者: kaka198    时间: 2010-1-10 07:34
现在的硬盘 都不用C/H/S表示了
维修公司 发表于 2010-1-10 00:12

学习嘛,古董的东西还是要看的嘛。
作者: 阿昶本人    时间: 2010-1-10 09:25
楼主讲的很细致,不过现在意义不大.
作者: 日新月异    时间: 2010-1-13 21:58
现在的硬硬盘大都是LBA方式了。C H S 的很少了。




欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4