BIOS+MBR操作系统引导方式
1. 主引导记录(Master Boot Record,缩写:MBR)
主引导记录又叫做主引导扇区,是计算机开机后启动操作系统时所必须要读取的硬盘首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。主引导记录由3个部分组成,起始446个字节区域为“主引导记录”;之后16×4=64字节区域为分区表;最后2个字节区域为结束标志字。各部分的详细描述如下:
1.1 主引导记录
主引导记录是启动操作系统第一阶段的引导代码,主要作用是检查分区表是否正确,然后加载引导程序并且将控制权移交给引导程序。
1.2 硬盘分区表
分区表记录硬盘的分区信息,含4个表项,每个表项16字节,表项结构组成如表2。注意第1个字节会标志分区是否为活动分区,活动分区表示系统可引导。MBR分区方式,支持最多4个主分区,每个分区最大可支持硬盘空间为2TB。理由是分区表仅有4个表项,每个16字节的表项中仅有4个字节记录该分区的扇区总数。
表2 硬盘分区结构信息
偏移 | 长度(字节) | 意义 |
---|---|---|
00H | 1 | 分区状态:00-->非活动分区;80-->活动分区;其它数值没有意义 |
01H | 1 | 分区起始磁头号(HEAD),用到全部8位 |
02H | 2 | 分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位 |
04H | 1 | 文件系统标志位 |
05H | 1 | 分区结束磁头号(HEAD),用到全部8位 |
06H | 2 | 分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位 |
08H | 4 | 分区起始相对扇区号 |
0CH | 4 | 分区总的扇区数 |
1.3 结束标志字
结束标志字标志主引导记录是否有效,若为55AA,则表示当前硬盘为可启动设备。
2. 分区引导记录(Paritition Boot Record,缩写:PBR)
分区引导记录用于安装具体操作系统操作相关的引导程序,此处安装的引导程序需要能够识别具体操作系统的文件格式并正确加载操作系统的核心到内存中运行。
3. MBR分区下的操作系统引导流程
MBR分区方式下操作系统引导的一般流程:
3.1 计算机上电后,BIOS(Basic Input Output system)进行硬件检测与初始化,硬件正常则读取可启动设备(经BIOS设置的优先级最高的可启动设备)的主引导记录,将控制权移交给安装在MBR中的引导程序。
3.2 第一阶段的引导程序检查分区表,发现可引导的分区,加载分区引导记录并将控制权移交给系统引导程序。
3.3 系统引导程序加载操作系统核心至内存,将CPU控制权交给操作系统,至此,完成操作系统引导过程。
参考资料
[1] 鸟哥的linux私房菜.基础学习篇.第四版
[2] 维基百科.主引导记录
[3] 百度百科.分区引导记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫