转:硬盘结构简介的好文(转)---MBR、分区表、CHS等概念
最近学FreeBSD的时候,在分区方面遇到一些疑问,顺便就了解了一下主分区,逻辑分区,以及磁盘存储的一些概念,发现了一篇好文章,在此转载
一、系统引导过程简介
系统引导过程主要由以下几个步骤组成(以硬盘启动为例)
1、 开机;
2、 BIOS加电自检(POST——Power On Self Test),内存地址为0fff:0000;
3、 将硬盘第一个扇区(0头0道1扇区,也就是Boot Sector)读入内存地址0000:7c00处;
4、 检查(WORD)0000:7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示 “No ROM BASIC” ,然后死机;
5、 跳转到0000:7c00处执行MBR中的程序;
6、 MBR先将自己复制到0000:0600处,然后继续执行;
7、 在主分区表中搜索标志为活动的分区。如果发现没有活动分区或者不止一个活动分区,则停止;
8、 将活动分区的第一个扇区读入内存地址0000:7c00处;
9、 检查(WORD)0000:7dfe是否等于0xaa55,若不等于则显示 “Missing Operating System”,然后停止,或尝试软盘启动;
10、 跳转到0000:7c00处继续执行特定系统的启动程序;
11、 启动系统。
以上步骤中(2),(3),(4),(5)步由BIOS的引导程序完成;(6),(7),(8),(9),(10)步由MBR中的引导程序完成。
一般多系统引导程序(如Smart Boot Manager, BootStar, PQBoot等)都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序之前让用户选择想要启动的分区。而某些系统自带的多系统引导程序(如 LILO,NT Loader等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux中即为两个扇区的SuperBlock.
注:以上步骤中使用的是标准的MBR,多系统引导程序的引导过程与此不同。
二、硬盘结构及参数
3D参数(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储)。
1、引导扇区
Boot Sector组成
Boot Sector也就是硬盘的第一个扇区,它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分组成。 MBR又称为主引导记录,占用Boot Sector的前446个字节(0~0x1BD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序)。 DPT即主分区表占用64个字节(0x1BE~0x1FD),记录磁盘的基本分区信息。主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信息(因此最多可以有四个主分区)。 Boot Record ID即引导区标记占用两个字节(0x1FE~0x1FF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志)。
Boot Secor具体结构如图:
2、分区表结构简介
分区表由四个分区项构成,每一项结构如下:
BYTE State:分区状态,0=未激活,0x80=激活(注意此项);
BYTE StartHead:分区起始磁头号;
WORD StartSC:分区起始扇区和柱面号,底字节的底6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位;
BYTE Type:分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用;
BYTE EndHead:分区结束磁头号;
WORD EndSC:分区结束扇区和柱面号,定义同前;
DWORD Relative:在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址);
DWORD Sectors:分区大小(总扇区数)。
在DOS或Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/256/63的硬盘,分区的最小尺寸为256*63*512/1048576=7.875MB.
由于硬盘的第一个扇区已经被引导扇区占用,所以一般来说,硬盘的第一个磁道(0头0道)的其余62个扇区是不会被分区占用的。某些分区软件甚至将第一个柱面全部空出来。
扩展分区结构如图:
三. 系统启动过程简介
系统启动过程主要由一下几步组成(以硬盘启动为例):
1. 开机 :-)
2. BIOS 加电自检 ( Power On Self Test -- POST )内存地址为 0ffff:0000
3. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector)读入内存地址 0000:7c00 处.
4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则转去尝试其他启动介质, 如果没有其他启动介质则显示"No ROM BASIC" 然后死机.
5. 跳转到 0000:7c00 处执行 MBR 中的程序.
6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.
7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动分区或有不止一个活动分区, 则转停止.
8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.
9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则显示 "Missing Operating System" 然后停止, 或尝试软盘启动.
10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.
11. 启动系统 ...
以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10步由MBR中的引导程序完成.
一般多系统引导程序 (如 SmartFDISK, BootStar, PQBoot 等)都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序之前让用户选择要启动的分区.
而某些系统自带的多系统引导程序 (如 lilo, NT Loader 等)则可以将自己的引导程序放在系统所处分区的第一个扇区中, 在 Linux中即为 SuperBlock (其实 SuperBlock 是两个扇区).
注: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导过程与此不同.
请参见原文
http://blog.sina.com.cn/s/blog_56f9f1600100090x.html
http://hi.baidu.com/noname2236/blog/item/56f1be1ccaed478886d6b672.html
转载于:https://www.cnblogs.com/hopeworld/archive/2011/03/27/1997298.html
转:硬盘结构简介的好文(转)---MBR、分区表、CHS等概念相关推荐
- 硬盘结构详解;详解MBR和GPT分区结构;详解raid磁盘阵列
目录 思维导图 硬盘的物理结构 硬盘读写过程 寻址方式 CHS寻址 LBA寻址 硬盘的分区结构 MBR分区结构 0号扇区内容 扩展分区 GPT分区结构 文件系统 文件系统的定义 文件系统的结构 rai ...
- html文档基本结构由哪三对,第3章 网页制作及HTML语言基本结构简介.ppt
第三章 网页制作与HTML语言基本结构简介 本章提要 静态网页与动态网页 Dreamweaver MX制作网页 HTML语言的基本结构 3.1网页制作概述 3.1.1静态网页与动态网页 1.静态网页 ...
- ORACLE内存结构简介
ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果 ...
- UE4-目录结构简介
UE4-目录结构简介 Time: 2020年10月15日17:16:30 Author: Yblackd UE4-目录结构简介 1. 关联账户 2. 通用目录 4. 引擎特有的目录 5. 游戏项目目录 ...
- html语言简介 ppt,网页制作与HTML语言基本结构简介.ppt
网页制作与HTML语言基本结构简介.ppt 第三章网页制作与HTML语言基本结构简介 本章提要静态网页与动态网页DreamweaverMX制作网页HTML语言的基本结构 3 1网页制作概述 3 1 1 ...
- Chromium源码目录结构简介
Chromium源码目录结构简介入门必备. High-level overview 高级概述 Chromium is separated into two main parts (excluding ...
- .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)
.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图 ...
- Laravel 文件夹结构简介
表 1.1:Laravel 文件夹结构简介 文件夹名称 简介 app 应用程序的业务逻辑代码存放文件夹 app/Console 存放自定义 Artisian 命令文件 app/Http/Control ...
- 硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程...
filex的文件系统看的云里雾里,还是先总结下FAT的一些基本知识吧. 硬盘结构 硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0 ...
最新文章
- Installation error: INSTALL_FAILED_CONTAINER_ERROR
- 源码包部署tomcat
- MySQL Administrator
- Kali忘记登录密码——修改root密码
- JWT/JJWT JSON WEB TOKEN介绍和使用
- ArcEngine 9.3.1与64位操作系统 80040154
- pytorch——张量操作与线性回归
- CentOS 系列安装 Docker
- Centos定时备份 MySQL数据库
- class文件的加载过程
- Windows窗口消息大全
- 今天我又发现一个宝藏应用:时光序-个人日程管理应用,记录生活的方方面面!
- 计算机分数转化成小数,分数换算成小数的方法(分数转换小数必背表)
- USB过压过流保护芯片,可调限流4A,6V过压关闭
- js中利用prompt和parseFloat来实现用户体温华氏和摄氏的提取(18)
- 关于数据驱动消费金融业务的几点看法
- 大数据方面的核心技术
- python的内置字典数据类型_python 数据类型元组与字典内置方法
- Node.js学习日记3
- [导入]微软.net精简框架常见问题及回答(中文版)
热门文章
- 数据科学即将迎来“无代码”时代
- 12.1 动态内存与智能指针(2)
- 以对象的方式来访问xml数据表(二)
- 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket
- 【To Debug】牛客网--华为机试在线训练3:明明的随机数
- Vue模板,数据和指令
- C++基础之返回数组
- torch.nn.Module.eval
- 从王者荣耀看设计模式(六.状态模式)
- C# 构造函数base()实例演示