admin 管理员组

文章数量: 887017

由于简书没有目录 想看目录的直接

打开CSDN的同名文章

目录:

[TOC]

磁盘分区格式介绍

一般来说,磁盘分区表有两种格式:MBR 和 GPT

MBR 分区

在 windows 操作系统下最多支持4个主分区或3个主分区+1个扩展分区(包含多个逻辑分区),扩展分区必须划分为逻辑分区才能使用,1个扩展分区可以划分多个逻辑分区,MBR 分区表不支持容量大于2.2TB的分区(一些硬盘制造商将他们的容量较大的磁盘升级到了 4KB 的扇区,这意味着 MBR 的有效容量上限提升到了 16 TB)

如下图 : 是一个 MBR 分区表示例:1 个主分区+1 个扩展分区(划分了 3 个逻辑分区)

GPT 分区

GPT 分区 对分区数量没有限制,但在 windows 系统上最多可以支持 128 个主分区GPT 分区表突破了 MBR 最大支持 2.2T 分区的限制,貌似最大支持 18EB 的分区如下图是一个 GPT 分区表示例:划分了 7 个主分区

检测磁盘分区表格式的方法

当然检测磁盘分区表格式的方法大概有两种:

打开Windows下磁盘管理---->右击一个磁盘属性

第二种就是通过分区工具查看

GPT和MBR转化

当然GPT也可以转化为MBR,相反MBR也可以转化为GPT

image.png

BIOS引导方式

目前主要的系统引导方式也有两种:传统的LegacyBIOS和新型的UEFI BIOS

一般来说,有如下两种引导+磁盘分区表组合方式:LegacyBIOS+MBR和UEFI BIOS+GPT

Legacy BIOS无法识别GPT分区表格式,所以也就没有LegacyBIOS+GPT组合方式;UEFI BIOS可同时识别MBR分区和GPT分区,所以UEFI下,MBR和GPT磁盘都可用于启动操作系统。不过由于微软限制,UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中。

再来说说传统Legacy BIOS和新型UEFI BIOS引导方式的工作原理吧:

Legacy BIOS原理

LegacyBIOS----->MBR----->活动的主分区(一般的为C盘)→\bootmgr→\Boot\BCD→\Windows\system32\winload.exe

传统Legacy BIOS引导windows操作系统时,是通过一个活动的主分区下的bootmgr(启动管理器)文件导入根目录下boot文件夹里的BCD(启动设置数据)文件,然后BCD文件根据自身的配置内容加载系统启动文件winload.exe(位置:根目录\Windows\system32\winload.exe)来启动系统。

一个BCD文件可以加载多个系统启动文件从而实现引导多个系统的启动通过EasyBCD工具看以看到BCD文件的内容,如下是我的win8.1和win10两个系统的BCD内容:

当然要是Windows和ubantu的话就是如下样子:反正都在活动区(一般的在c盘)

需要注意的是:MBR磁盘格式下,windows系统的启动文件(bootmgr、BCD)必须存放在活动的主分区内,这样才能正常引导系统启动(MBR磁盘分区格式下,只允许有一个分区是活动的)。

如果是使用微软原版操作系统按照windows安装程序来进行系统安装,系统会自动创建一个隐藏的活动主分区(win7貌似是100M,win8貌似是350M)用来存放启动文件;

如果采用其他安装方式来安装系统,由于系统默认并不会自动创建这个活动的主分区,启动文件将会存放我们的系统盘里,所以我们在采用其它安装方式安装第一个系统时,需要确保安装系统的分区是活动的、而且是主分区,而安装第二个、第三个…系统时,就不必要求必须是主分区了,逻辑分区也可以,因为安装第二个、第三个…系统时,我们已经有了一个活动的主分区了(第一个系统所在的分区),这个活动的主分区下的BCD文件里已经包含了我们的第二个、第三个…系统的启动信息用来启动第二个、第三个…系统。(设置这些系统的时候可以用EasyBCD)

UEFI BIOS原理

esp引导分区中的文件结构

efi\boot\bootx64.efi

efi\microsoft\boot\bcd

efi启动过程

本文标签: 双系统 模式 Ubuntu UEFI MBR