曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6565|回复: 1
打印 上一主题 下一主题

硬盘.MBR.分区

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2008-11-25 02:49:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬盘分区结构示意图:

1、MBR
MBR 位于硬盘第一个物理扇区(0柱面,0磁头,1扇区--绝对0扇区)。DOS(windows OS)是由0柱面,1磁头,1扇区开始,所以MBR不属于 DOS 扇区,DOS不能直接访问。

MBR中包含硬盘的 主引导程序硬盘分区表(记录有关分区信息)。分区表有4个分区记录去,每个记录区占16个字节。分区表从主引导记录偏移地址01BEH处连续存放。

主引导记录分为3个部分
第一部分:pre-boot (预启动区,446 bytes)
如图所示(蓝色部分):
(一般的,无需理解每个字节含义,这一部分数据一旦被破坏,可以从正常的硬盘中copy相应的数据覆盖后,就可以正常使用,或者通过重新初始化该硬盘也可以使其正常。需要注意的是,在非Microsoft平台下使用的硬盘,这部分数据有的不符合主引导记录(MBR)格式,我们不需要去更改它,否则正常的数据会被破坏掉
<图片已经丢失>
第二部分:Partition table(分区表, 16 * 4 = 64 bytes)
第三部分:结束标志 2 bytes (55AA)
<1>如果分区表信息的活动分区表损坏,则用这个硬盘来引导系统的时候就会报错:
      Invalid partition table. Error loading operating system. Missing operating system.
      (不可用的分区表。装在操作系统错误。操作系统丢失)
<2>如果预启动分区是空的,没有任何数据或者不是正确的MBR格式数据,用这个硬盘来引导,会提示找不到可以用来启动的设备:
      Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key.

分区表格式如下图示:
PIC-1:
<图片已经丢失>


PIC-2:(64个字节,4个分区信息记录区域,每个16字节;扩展分区也是一个主分区)


<图片已经丢失>


分析第一个分区表信息:(每个分区表都有3个非常重要的参数:分区类型、分区起始扇区,分区大小,其中还有一个参数标记这个分区是否为活动分区,活动分区一般一个硬盘中只允许一个)。
80 01 01 00 07 FE FF FF 3F 00 00 00 DC BE 21 04

80:活动分区标志
07:分区类型,07表示该分区为NTFS格式(0B为FAT32)
3F 00 00 00:该分区的起始扇区,为十六进制--0000003F(十进制为63)
DC BE 21 04:该分区的大小,单位是扇区,为十六进制:0421BEDC(十进制69320412)
(每个扇区512字节,69320412*512 约等于33G,我的C区当时为了装VISTA,就大概分了33G)

其它字节的相关说明:
第2字节:起始磁头号
第3字节:低6位为起始扇区,高2位与第4字节为起始柱面
第4字节:起始柱面的低8位
第6字节:终止磁头
第7字节:低6位为终止扇区,高2位与第8字节为终止柱面

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
沙发
 楼主| 发表于 2008-11-27 11:16:50 | 只看该作者
一、扇区结构
 
 硬盘主引导扇区占据一个扇区,共512(200H)个字节,具体结构如下:

  1.硬盘主引导程序,位于该扇区的0-1BDH处;
  2.硬盘分区表,位于1BEH-1FDH处,每个分区表占用16个字节,共4个分区表,16个字节各字节意义如下:
  0:自举标志,80H为可引导分区,00为不可引导分区;
  1~3:本分区在硬盘上的开始物理地址;
  4:分区类型,其中1表示为12位FAT表的基本DOS分区;4为16位FAT表的基本DOS分区;5为扩展DOS 分区;6为大于32M的DOS分区;其它为非DOS分区。
  5~7:本分区的结束地址;
  8~11:该分区之前的扇区数,即此分区第一扇区的绝对扇区号;
  12~15:该分区占用的总扇区数。
  3.引导扇区的有效标志,位于1FEH-1FFH处,固定值为AA55H。

 二、硬盘主引导扇区的作用

  硬盘主引导扇区在各个DOS版本下其内容基本一致,主要完成的任务是:

  1.存放硬盘分区表,这是硬盘正确读写的关键数据。
  2.检查硬盘分区的正确性,要求只能且必须存在一个活动分区。
  3.确定活动分区号,并读出相应操作系统的引导记录。
  4.检查操作系统引导记录的正确性, DOS引导扇区末尾也存在着一个AA55H标志,供引导程序识别。
  5.释放引导权给相应的操作系统。例如,当确认DOS 操作系统引导记录存在时, 则调出DOS引导程序并执行。
 
 另外,当它发现引导故障时将给出部分提示信息,如:
  ?Invalid partition table?表示硬盘分区表错误, 没有或存在两个以上活动分区;
  ?Error loading operating system?表示读DOS引导记录时出错;
  ?Missing operating system?表示 DOS引导记录无有效标志AA55H。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-17 11:00 , Processed in 0.065305 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表