MBR完整架构

上一篇文章描述了如何使用LBA模式读取MBR。
但好像并不是所有的BIOS都支持LBA模式,所以最原始的CHS模式(NOMAL模式)也是有必要的。
换句话来说,如果PBR在528MB以内,就没有必要使用LBA模式。
大概流程是判断CHS是否有效,有效(528MB以内)则使用CHS模式。
那么如何知道CHS是有效的呢?
我自己用虚拟机实践了一下,一个20G的硬盘,分成两个10G的主分区,并把第二个主分区设置为活动的。
这就造成了PBR在很远很远的地方,查看MBR,第二个分区分区表为80 FE FF FF等16个字节。
磁头数=0xFE=254,柱面数=1111111111B=1023,扇区数=111111B=63。
本来我是想用这一种方法来判断的,就是比较各数据成员是否是最大值。
不过没有采用,使用的是CHS和LBA比较的方法。
通过获取磁盘参数(int 13/ah=8)得到硬盘参数,把CHS转换为LBA地址,再与MBR中的LBA地址比较,相等则使用CHS模式。
计算公式如下:

设NS为每磁道扇区数,NH为每柱面磁头数,C、H、S分别表示磁盘的柱面、磁头和扇区编号
LBA=NH×NS×C+NC×H+S-1
换句话来说,如果LBA表示的扇区在CHS表示范围之内,则CHS模式可用。

至此,MBR基本完成,能够替换windows的MBR并正常启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值