MBR主引导扇区解析【转】
转自:https://www.cnblogs.com/CasonChan/p/4546658.html
最近在制作镜像的时候由于需要简单研究了下MBR主引导扇区的结构,这里记录下便于后期温习,下面就直接进入正题:
MBR主引导扇区位于磁盘的第一个扇区,即0号扇区,主要由引导代码、分区表、结束标志三部分构成,总共占512字节。
下面首先看下MBR主引导扇区的整体结构图:
1、引导代码
上图中黄色框内的部分即为引导程序,占扇区前446字节。计算机在上电完成BIOS自检后,会将该主引导扇区加载到内存中并执行前面446字节的引导程序,引导程序首先会在分区表中查找活动分区,若存在活动分区,则根据活动分区的偏移量找到该活动分区上的引导扇区的地址,并将该引导扇区加载到内存中,同时检查该引导扇区的有效性,然后根据该引导扇区的规则去引导操作系统。在一些非启动磁盘上,MBR引导代码可能都是0,这对磁盘使用没有任何影响。
2、分区表
上图中蓝色框内的部分即为分区表,占扇区中间64字节。分区表是磁盘管理最重要的部分,通过分区表信息来定位各个分区,访问用户数据。分区表包含4个分区项,每一个分区项通过位置偏移、分区大小来唯一确定一个主分区或者扩展分区。每个分区项占16字节,包括引导标识、起始和结束位置的CHS参数、分区类型、开始扇区、分区大小等,具体描述如下表所示:
这里需要注意的是,分区项的第1个字节表示该分区是否是活动分区,即是否包含系统引导扇区,用来引导操作系统。每个磁盘只能同时有一个活动分区,活动分区的引导指示符是0x80,其他均为0x00;尽管我们可以通过一些工具来手动修改引导指示符,但是引导程序只会查找并使用第一个引导指示符为0x80的活动分区。
3、结束标志
上图中最后的"55 AA"即为结束标志,或者称魔数,占扇区最后2字节。每次执行系统引导代码时都会检查MBR主引导扇区最后2字节是否是"55 AA",若是,则继续执行后续的程序,否则,则认为这是一个无效的MBR引导扇区,停止引导系统。
【推荐】国内首个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 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义