作者: zhy2111314
来自: LinuxSir.Org ouc.edu.cn
摘要: 本文是理论性文档,主要讲述系统引导过程以及硬盘的物理结构;


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


一、系统引导过程简介

系统引导过程主要由以下几个步骤组成(以硬盘启动为例)
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个扇区是不会被分区占用的.某些分区软件甚至将第一个柱面全部空出来.

扩展分区结构如图:

附录:
《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》
《在Fedora core 4.0 加载NTFS和FAT32分区详述》
《合理规划您的硬盘分区》
《系统引导过程及硬盘分区结构论述》
《Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践》

转载于:https://www.cnblogs.com/licheng/archive/2008/01/21/1047277.html

系统引导管理 之 系统引导过程及硬盘分区结构论述相关推荐

  1. python车牌识别系统+车辆管理+计费系统(图像识别)django框架 计算机毕业设计

    python车牌识别系统+车辆管理+计费系统(图像识别)django框架 计算机毕业设计 一.开发技术 技术栈:基于Django框架,涉及停车费计算,用户管理,车牌识别(百度云) 功能: [1]用户管 ...

  2. java计算机毕业设计人才招聘系统智能化管理MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计人才招聘系统智能化管理MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计人才招聘系统智能化管理MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: ...

  3. linux多系统引导管理,Linux 多重引导MBR与系统引导管理器GRUB.docx

    Linux 多重引导MBR与系统引导管理器GRUB Linux 多重引导MBR与系统引导管理器GRUB1 Linux 多重引导MBR简单的说,从开机到进入操作系统之前的流程应该是这样的:BIOS:开机 ...

  4. linux常用的引导管理器,多重引导管理器Grub使用详解

    多重引导管理器Grub使用详解 1.问题的提出 目前发行的Linux版本大多用LILO实现多系统引导,但不同版本的LILO有同样的一个问题:根分区(/boot分区)不能分在1024柱面(约8.4GB ...

  5. 鸿蒙系统内存管理,嵌入式系统内存管理-鸿蒙HarmonyOS技术社区-鸿蒙官方战略合作伙伴-51CTO.COM...

    1.概述 操作系统的内存管理功能用于向操作系统提供一致的地址映射功能和内存页面的申请.释放操作.在嵌入式实时系统中,内存管理根据不同的系统,有不同的策略,对于有些系统支持的虚拟内存管理机制,对于另外一 ...

  6. python windows系统_python管理windows系统tomcat服务

    基于python实现的功能更强大的tomcat 守护进程.目前实现的功能: 1.通过性更强 ---通过修改config文件即可实现对其他tomcat程序的守护: 2.具有日志查看 --- 轮询30个日 ...

  7. Linux与Windows双系统下的Grub引导管理器安装。

    转载自品略图书馆 http://www.pinlue.com/article/2020/04/0710/1410126301133.html 大多数人日常工作所用的系统是Windows,如果想尝试或者 ...

  8. 系统引导管理 之 用GRUB(包括WINGRUB)命令行模式引导安装Linux

    作者:北南南北 来自:LinuxSir.Org 提要:Linux的安装过程的引导有几种方法,一种是在DOS下通过loadlin进行安装:一种是通过lilo系统引导管理器进行引导:还有一种就是通过系统引 ...

  9. 麒麟服务器系统磁盘管理之fdisk

    麒麟服务器系统磁盘管理之fdisk 1. 对磁盘进行分区 前提条件: 已登录服务器系统. 已挂载数据盘到服务器,且该盘未初始化. 查看新增数据盘 root@localhost 桌面]# fdisk - ...

最新文章

  1. 类型初始值设定项引发异常
  2. 内置付费 inapp purchase and Error Domain=SKErrorDomain Code=0 “Cannot connect to iTunes Store”错误...
  3. C语言从0到1·数据类型及其存储
  4. 人工神经网络_AI产品经理必修课 | 人工智能概论(四)-人工神经网络
  5. ie11浏览器不能显示最新修改的程序,调试出现代码逻辑错误却依旧执行
  6. hash function/ hash table 背后的数学基础
  7. 浅谈C语言字符串结束符'\0'
  8. 老翟书摘:《丰田生产方式》
  9. 计算机硬件参数及性能判断,小菜硬件杂谈 如何从显卡型号判断性能
  10. SVN及VSS下载脚本
  11. 关于DBSCAN聚类算法
  12. 基于SSM房屋租赁管理系统
  13. 什么是异构数据源和分布式数据库
  14. 灭了珊瑚虫,OOXX了SOFF,下一个是谁?
  15. 【机器视觉学习笔记】-001.环境篇
  16. Python数据分析案例18——化学分子数据模型(机器学习分类问题全流程)
  17. 基于AOP和HashMap原理学习,开发Mysql分库分表路由组件!
  18. 关于python循环结构以下描述错误的是_关于Python循环结构,以下选项中描述错误的是:()...
  19. Linux系统查看服务器是arm架构还是x86架构
  20. c语言手册 html,C语言版完全指引手册beta版——初到者必读 — 编程爱好者社区...

热门文章

  1. Javawebservlet+Mysql实现的化妆品售卖系统(功能包含分角色,登录/注册、化妆品列表/商品详情/加入购物车/订单结算付款/地址管理/后台权限管理/商品管理/订单列表等)
  2. 基于Python的大学生英语词汇学习系统(附带下载链接)
  3. 斐讯路由器虚拟服务器设置教程,tp-link路由器远程控制如何开启【详解】
  4. 学习计算机视觉之目标检测的总结
  5. 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字
  6. android listview 滚动条隐藏,隐藏滚动条在FlatList(React Native)中Android
  7. php 在线预览office 相关文档
  8. python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解
  9. 瑜伽馆管理系统php,校园健身房会员管理系统PHP
  10. 2020身高体重标准表儿童_2020身高体重标准表儿童1-12岁