每个主分区的16个字节,由6个部分组成:
- 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区 。四个主分区里面只能有一个是激活的 。
- 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等) 。
- 第5个字节:主分区类型 。
- 第6-8个字节:主分区最后一个扇区的物理位置 。
- 第9-12字节:该主分区第一个扇区的逻辑地址 。
- 第13-16字节:主分区的扇区总数 。
如果每个扇区为512个字节,就意味着单个分区最大不超过2TB 。再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的空间最大也不超过2TB 。
如果想使用更大的硬盘,只有2个方法:
- 一是提高每个扇区的字节数,
- 二是增加扇区总数 。
引导加载程序(Boot loader): 一支可读取内核文件来执行的软件
内核文件:开始操作系统的功能
引导操作系统的过程由硬盘启动时,BIOS通常是转向第一块硬盘的第一个扇区,即主引导记录(MBR) 。装载GRUB和操作系统的过程,包括以下几个操作步骤:
装载记录
基本引导装载程序所做的唯一的事情就是装载第二引导装载程序 。
装载Grub
这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统 。
装载系统
如linux内核 。GRUB把机器的控制权移交给操作系统 。
不同的是,微软操作系统都是使用一种称为链式装载的引导方法来启动的,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区 。
加载主引导加载程序-基本装载程序众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息 。
按照BIOS所设定的系统启动流程,如果检测通过,则根据引导次序(Boot Sequence)开始在第一台设备上支持启动程序,我们的启动设备主要包括硬盘、USB、SD等,我们一般用的是硬盘,然后进行读取第一个设备就是硬盘,第一个要读去的就是该硬盘的主引导记录MBR(Master Boot Record),然后系统可以根据启动区安装的引导加载程序(Boot Loader)开始执行核心识别的工作 。
MBR程序只是找到只是硬盘分区内最前面的446个字节的Boot Loader,然后查找相关配置和定义 。然后将控制权交给主引导代码 。主引导代码的任务包括
- 扫描分区表,找到一个激活(可引导)分区;
- 找到激活分区的起始扇区;
- 将激活分区的引导扇区装载到内存7C00处;
- 将控制权交给引导扇区代码;
这时,计算机的控制权就要转交给硬盘的某个分区了,这里又分成三种情况 。
情况A:卷引导记录
上一节提到,四个主分区里面,只有一个是激活的 。计算机会读取激活分区的第一个扇区,叫做“卷引导记录”(Volume boot record,缩写为VBR) 。“卷引导记录”的主要作用是,告诉计算机,操作系统在这个分区里的位置 。然后,计算机就会加载操作系统了 。
情况B:扩展分区和逻辑分区
随着硬盘越来越大,四个主分区已经不够了,需要更多的分区 。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成“扩展分区”(Extended partition) 。所谓“扩展分区”,就是指这个区里面又分成多个区 。这种分区里面的分区,就叫做”逻辑分区”(logical partition) 。
计算机先读取扩展分区的第一个扇区,叫做“扩展引导记录”(Extended boot record,缩写为EBR) 。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区) 。
计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项) 。因此,扩展分区可以包含无数个逻辑分区 。
推荐阅读
- PHP 开源工作流引擎 V6.0.0 正式版发布
- 鸿蒙APP开发:如何实现“百度地图”的显示?需要3项认真操作才行
- linux-centos网络配置bond
- 国三车能开到什么时候?
- 国产Linux系统可爱鱼CutefishOS 0.7 Beta发布
- 这样清理C盘不影响系统,电脑一下子多了30G,运行忒流畅
- App制作的流程是什么?如何制作App开发流程?
- Java业务开发常见错误
- 小白如何看出计算机操作系统是否开启勒索病毒危险端口
- 小白是如何让Kali Linux操作系统从U盘成功启动