关于硬盘分区表 |
|
精华序号:102
来自论坛:小熊在线 《板卡论坛》
内容说明:主要分三部分内容:硬盘主引导区的结构、硬盘启动流程、调试工具debug的运用。 1、硬盘主引导区的结
- 学者,拜托用最简单的话说明一下分区表的概念好吗?(空) 蔷薇和玛丽 (92607)于2001/08/02(16:50:50)..
- 最简单的话:分区表记录着该硬盘的分区情况...糊哈哈哈哈后~~~~~~(5字) 小蔡.com (92621)于2001/08/02(17:34:06)..
闪了~~~~~~
- ◎ 关于硬盘分区表(1694字) 小蔡.com (92620)于2001/08/02(17:28:37)..
主要分三部分内容:硬盘主引导区的结构、硬盘启动流程、调试工具debug的运用。
1、硬盘主引导区的结构
硬盘主引导区(即MBR-Main Boot Record)一般位于硬盘的0磁头0柱面1扇区,也就是硬盘的起始位置,它包括两部分内容:硬盘主引导程序和硬盘分区表数据信息。其长度为200字节(16进制,转成10进制就是2*16*16=512字节=0.5K),也就是1个扇区的长度。其中位移从0—1BD为硬盘主引导程序,1BE—1FF(长度40H字节)为硬盘分区表,每个分区信息长度为10H字节,最多可以保存四个硬盘主分区信息(如主分区及扩展分区的活动标志、分区的起始位置、结束位置、总长度等信息),分区信息位置及意义见表:
我的金钻四代15G硬盘的分区信息及解释:
(1)第一分区信息(即dos主分区):
位移 名称 内容 含义
1BE(1字节长) 启动标志 80 可引导分区(能启动)
1BF—1C1(3字节长) 分区起始位置(头、扇、面) 01 01 00 该分区从:01磁头01扇区0柱面开始
1C2(1字节长) 系统标志 0B FAT32格式的dos主分区表(即C盘)
1C3—1C5(3字节长) 分区结束位置(头、扇、面) FE 7F FD 该分区以:FE磁头7F扇区FD柱面结束
1C6—1C9(4字节长) 相对扇区号 3F 00 00 00 首扇区开始放于硬盘的3F处
1CA—1CD(4字节长) 总扇区数 3F 04 7D 00 本分区的长度为7D043F扇区(4G)
第二、第四分区尚无信息(我的电脑仅装了win98,未安装其他操作系统)
(2)第三分区信息(即dos扩展分区):
位移 名称 内容 含义
1DE(1字节长) 启动标志 00 不可引导分区(不能启动)
1DF—1E1(3字节长) 分区起始位置(头、扇、面) 00 41 FE 该分区从:00磁头41扇区FE柱面开始
1E2(1字节长) 系统标志 0F FAT32格式的dos扩展分区表(不是D盘!)
1E3—1E5(3字节长) 分区结束位置(头、扇、面) FE FF 4B 该分区以:FE磁头FF扇区4B柱面结束
1E6—1E9(4字节长) 相对扇区号 7E 04 7D 00 首扇区开始放于硬盘的7D047E处
7D047E=7D043F+3F
1EA—1ED(4字节长) 总扇区数 CE E3 4C 01 本分区的长度为014CE3CE扇区(10.6G)
(3)分区结束标志:55AA
2、硬盘启动流程
开机后,电脑首先自动读取系统BIOS信息,进行硬件检测和配置,然后读取软盘或硬盘第一磁道信息(软盘先读还是硬盘先读可在BIOS中设定,这里以硬盘启动为例),读取后放到内存的0:7C00处开始运行,运行的主要步骤:
(1)检测位移1BE、1CE、1DE、1FE(启动标志)的值是否为80,并且是否唯一,若不是的话,硬盘无法启动,死机。
(2)检测位移1FF的值是否为55AA,不是的话硬盘也无法启动,死机。
(3)上述条件都符合的情况下,读取启动标志为80的分区信息,并将其起始分区(为dos分区引导)通过int 13中断读入内存0:7C00处并执行。
通常情况下,硬盘分区被意外破坏或被引导型病毒攻击的机会较大,若你的分区表有备份或已打印的话,破坏后可手工进行修改,手工修改可通过debug调试工具进行。
3、debug调试工具的运用
debug是一个强大的调试工具,凡学过计算机最基础语言—汇编语言的朋友一定也认识它了,在dos/win下都有debug,这里主要讲述一下磁盘读写命令(int13):
用int 13命令可完成对磁盘的读写任务,不过之前必须对AX、BX、CX、DX等寄存器进行必要的赋值,其中:
AX AH=2(读盘),AH=3(写盘);AL=读/写扇区个数 如:0201为读盘、1个扇区
BX 数据从那里去读入(写入)磁盘 如:0200,从0200处开始读/写
CX CH=面号;CL=扇区号 如:0001,0面第1扇区
DX DH=磁头号;DL=驱动器号 如:0080,0磁头,80为第一硬盘
说明:AX(BX、CX、DX相同)其实由高位(AH)及低位(AL)组成,AX=0801等义于AH=08,AL=01
(1)读硬盘主分区的命令:(首先必须用debug的a命令插入一段程序如下)
mov ax,0201
mov bx,0200
mov cx,0001
mov dx,0080
int 13
int 20
(2)用debug的e命令对读入后的数据进行修改,用法:
e 地址号 修改值
如将3BE处内容修改为80,可输入:e 3be 80
(2)写硬盘主分区的命令:(同样首先必须用debug的a命令插入一段程序如下)
mov ax,0301
mov bx,0200
mov cx,0001
mov dx,0080
int 13
int 20
- ~~~我头晕~~~~~~~~~`(空) dinggo (92653)于2001/08/02(19:53:22)..
- 谢谢小蔡.com,(45字) 蔷薇和玛丽 (92649)于2001/08/02(19:37:46)..
加入精华区吧,给象我这样的菜菜子补课!
图文并茂,我还没有开始看,就觉得我一定能看懂了,
- 我我我,我菜极了(空) 蔷薇和玛丽 (92611)于2001/08/02(17:02:52)..
- 谢谢Spider(空) 蔷薇和玛丽 (92618)于2001/08/02(17:20:31)..
本论坛由小熊在线(www.beareyes.com)joyt制作及维护