硬盘分区
作用
建立硬盘数据结构(分区表、扩展分区等)
执行
分区划分以柱面为单位,一个柱面不能属于两个分区
主引导扇区(第一个扇区)
图示
找到分区入口
分区表项的内容
相对扇区数
相对于引导记录头部的偏移扇区数
MBR和EBR
主分区表中的四个分区表项,属于MBR
扩展分区的分区表项,属于EBR(Extended MBR)
EBR为了兼容MBR,完全复用了MBR的引导扇区格式,但前466个字节为0,后两个分区表项无效,结束标识55AA
主分区表中最后一个有效主分区记录指向的磁盘空间(主扩展分区)将用EBR划分,分为N个逻辑盘,形成EBR链
整个图示
定位主分区和扩展分区的关键区别
主分区:
- 偏移量是相对物理盘开始(MBR)的偏移,根据偏移得到的就是该分区的引导扇区和文件系统
扩展分区:
- 偏移量是相对于包含该分区的扩展分区开始处(EBR)而言
硬盘引导过程
开机加电自检
开机,CPU跳到FFFF:0000处,由该处的一条JMP指令跳到BIOS的自检程序(POST),自检通过后,加载引导程序(与操作系统无关的MBR,按用户在BIOS中指定顺序,硬盘,软盘,光驱或U盘等)
读主引导扇区
将主引导扇区MBR读入到内存的0000:7C00,扫描主分区表,搜索激活分区,分区表项第一个字节为0x80表示激活分区
读激活分区引导扇区
如果有多个激活分区或没有,报错结束。否则读取激活分区引导扇区到0000:7C00
操作系统引导代码引导系统并读取操作系统初始化文件
注意
- MBR中硬盘数据结构与操作系统无关
- 操作系统相关的引导代码在激活分区的引导扇区,而MBR的引导程序选择激活分区
- 以上步骤采用的是标准MBR,但硬盘也可以引导多系统,要引导多系统必须用专门的引导程序替换标准MBR,这样替换后的硬盘引导代码执行时可让用户选择启动哪个硬盘分区
X86实模式寻址
- 一个段64k,2字节表示
- 段地址:段内偏移 例如:0001:1234
- 省略段地址 相对DS数据段寄存器
- 为了方便,CS(指令段)、DS(数据段)、ES(附加段)、SS(栈段)设定为相同段
- 指令获取 CS:IP、栈操作 SS:SP
- 涉及内存的操作指令中没有段信息用DS
硬盘逻辑锁
最后一个分区表项又指向了新的MBR形成一个死锁
思考题
- 如何遍历FAT表获得一个文件所占的簇?
- 对于一个多层嵌套的文件,如何找到文件所对应的目录项?
- 如何找到硬盘的主分区和扩展分区?
- 简述硬盘引导的过程?