装机、做系统必备:秒懂MBR和GPT分区表

科技美学 2016-10-17 16:36:23 阅读(3835) 评论(4)

很多网友询问MBR和GPT的问题,涉及到硬盘操作系统的安装,其实除了MBR和GPT分区表,UEFI BIOS也是和操作系统紧密联系在一起的,下面我们就来聊聊硬盘分区表和UEFI BIOS的知识。

  

图片来自网络

  从Intel 6系列主板之后,就开始提供UEFI BIOS支持,正式支持GPT硬盘分区表,一举取代了此前的MBR分区表格式,不过为了保持对老平台的兼容,微软即使最新的Windows 10系统也继续提供了对MBR分区表格式的支持。

  MBR和GPT分区表详解

全新硬盘(未初始化)装系统之前,必须对齐进行分区,硬盘分区初始化的格式包括MBR和GPT两种。当然对于基于PowerPC的Mac电脑还有专门的Apple分区图,在这里就不做介绍。

  

MBR的全称是Master Boot Record(主引导记录),MBR早在1983年IBM PC DOS 2.0中就已经提出。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。

主引导扇区是硬盘的第一扇区。它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序;第二部分是Partition table区(DPT分区表),占64个字节;第三部分是Magic number,占2个字节。

  

  MBR分区表系统

所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如果你安装了Windows,Windows启动加载器的初始信息就放在这个区域里——如果MBR的信息被覆盖导致Windows不能启动,你就需要使用Windows的MBR修复功能来使其恢复正常。如果你安装了Linux,则位于MBR里的通常会是GRUB加载器。

分区表偏移地址为01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4,分别对应MBR的四个主分区。

Magic number也就是结束标志字,偏移地址01FE--01FF的2个字节,固定为55AA,如果该标志错误系统就不能启动。

  

MBR最大支持2.2TB磁盘,它无法处理大于2.2TB容量的磁盘。MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区。

GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,它的推出是和UEFI BIOS相辅相成的,鉴于MBR的磁盘容量和分区数量已经不能满足硬件发展的需求,GPT首要的任务就是突破了2.2T分区的限制,最大支持18EB的分区。

  

  GPT分区表系统

而在分区数量上,GPT会为每一个分区分配一个全局唯一的标识符,理论上GPT支持无限个磁盘分区,不过在Windows系统上由于系统的限制,最多只能支持128个磁盘分区,基本可以满足所有用户的存储需求。在每一个分区上,这个标识符是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。

  

而在安全性方面,GPT分区表也进行了全方位改进。在早期的MBR磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,GPT在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。GPT还为这些信息保存了循环冗余校验码(CRC)以保证其完整和正确——如果数据被破坏,GPT会发觉这些破坏,并从磁盘上的其他地方进行恢复。

小结:所以对于新平台用户(Intel 6系以后/AMD 900系列以后和A系列)来说,都强烈推荐使用GPT分区表格式,目前包括Windows Vista、7、8、8.1、10已经都支持读取和使用GPT分区表。而对于使用Windows 8、8.1、10的用户,换用GPT后开机启动速度也可以进一步得到显著提升。

  UEFI BIOS详解

UEFI的全称是Unified Extensible Firmware Interface,意即统一可扩展固件接口,它是基于EFI 1.10标准为基础发展而来,值得注意的是在UEFI正式确立之前,Intel就开始积极推进传统BIOS的升级方案,并最终确立了过渡方案EFI标准,直到2007年Intel将EFI标准的改进与完善工作交给Unified EFI Form进行全权负责,EFI标准则正式更名为UEFI。

  

相比传统BIOS,UEFI最大的几个区别在于:

1、编码99%都是由C语言完成;

2、一改之前的中断、硬件端口操作的方法,而采用了Driver/protocol的新方式;

3、将不支持X86实模式,而直接采用Flat mode(也就是不能用DOS了,现在有些 EFI 或 UEFI 能用是因为做了兼容,但实际上这部分不属于UEFI的定义了);

4、输出也不再是单纯的二进制code,改为Removable Binary Drivers;

5、OS启动不再是调用Int19,而是直接利用protocol/device Path;

6、对于第三方的开发,前者基本上做不到,除非参与BIOS的设计,但是还要受到ROM的大小限制,而后者就便利多了。

7、弥补BIOS对新硬件的支持不足的问题。

UEFI和GPT是相辅相成的,二者缺一不可,要想使用GPT分区表则必须是UEFI BIOS环境。UEFI于用户而言最典型的特征就是使用了图形化界面,虽然还未达到操作系统界面的图形交互功能,但人性化的界面、鼠标的操作,已经将BIOS变得非常易用,对于不少电脑初级用户来说也可以很好的查看和设置BIOS的相关选项和功能。

  

除了图形化界面,UEFI相比传统BIOS,还提供了文件系统的支持,它能够直接读取FAT、FAT32分区中的文件,例如华硕、华擎等主板在UEFI BIOS环境下更新BIOS就可以直接读取U盘中的BIOS及其他文件,另外新的UEFI主板基本都提供了截屏功能,这些截屏图片都可以存储在U盘当中。

UEFI还有一个重要特性就是在UEFI下运行应用程序,这类程序文件通常以efi结尾。利用UEFI可以直接识别FAT分区中的文件,又有可直接在其中运行应用程序。我们就可以将Windows安装程序做成efi类型应用程序,然后把它放到任意FATA分区中直接运行即可。

  

  UEFI启动顺序

UEFI的模块化设计,它在逻辑上分为硬件控制与OS(操作系统)软件管理两部分,硬件控制为所有UEFI版本所共有,而OS软件管理其实是一个可编程的开放接口。借助这个接口,主板厂商可以实现各种丰富的功能。比如我们熟悉的各种备份及诊断功能可通过UEFI加以实现,主板或固件厂商可以将它们作为自身产品的一大卖点。UEFI也提供了强大的联网功能,其他用户可以对你的主机进行可靠的远程故障诊断,而这一切并不需要进入操作系统。

当然由于UEFI主要由高级语言编写(C语言),相比于传统BIOS的汇编语言,UEFI BIOS在安全防护性方面相比传统BIOS要弱,比较容易遭到病毒的攻击,安全性有待进一步提升。不过在图形化界面、应用程序扩展面前,UEFI BIOS还是非常成功的。

  One More Thing...

聊完了MBR/GPT分区表和UEFI BIOS,下面我们就来介绍下UEFI下安装Windows系统,上面已经讲到UEFI和GPT是相辅相成的,如果使用UEFI模式安装Windows系统,那么硬盘分区表必须是GPT。

  

备注:主板为了兼容MBR分区表,一般会提供Legacy BIOS和UEFI BIOS启动模式选项,如果要使用UEFI模式安装Windows,就必须开启UEFI启动模式。

  

目前64bit Windows Vista、7、8、8.1、10都已经支持GPT分区表,而Windows 8、8.1、10都已经原生支持UEFI,安装这些系统的时候:只要硬盘设置为GPT分区表 主板设置为UEFI启动后,就可以直接开始安装操作系统了。

  

而对于Windows Vista、7系统,就需要手动添加UEFI支持,我们可以找一份Windows 8或者10安装镜像,从安装文件中提取Bootmgfw.efi文件,重命名为BOOTX64.EFI,拷贝到win7安装文件的\EFI\Boot\下,如果没有BOOT文件夹就新建一个。

至此UEFI模式安装Windows系统告一段落,如果大家还有什么疑问,欢迎大家在下面评论中提出宝贵的意见。

装机、做系统必备:秒懂MBR和GPT分区表____转载网络的更多相关文章

  1. 装机、做系统必备:秒懂MBR和GPT分区表

    从Intel 6系列主板之后,就开始提供UEFI BIOS支持,正式支持GPT硬盘分区表,一举取代了此前的MBR分区表格式,不过为了保持对老平台的兼容,微软即使最新的Windows 10系统也继续提供 ...

  2. 【Windows Server存储】MBR和GPT分区表

    MBR和GPT分区表 分区表用于引导操作系统 master boot record(MBR)于1983年首次在PC上推出 最大4个主分区 2太空间 GUID Partition Table(GPT), ...

  3. MBR和GPT分区表

    https://www.reneelab.com.cn/m/mbr-gpt-difference.html

  4. 硬盘MBR和GPT区别

    似乎人人都可以张嘴就说"我懂电脑",但是总有一些看起来完全不懂但实际上非常基础的东西让"懂"与"不懂"清晰地划清界限.比如UEFI+GPT就 ...

  5. GPT分区表的备份与恢复

    GPT分区表的备份与恢复  keenshoes 2016-01-13 21:02:25 关键词: GPT, Partition, MBR,APPLE, GUID, Protective MBR 对于现 ...

  6. 系统分区MBR、GPT

    分区模式: ①MBR(主引导记录(Master Boot Record))分区:在驱动器最前端的一段引导扇区 缺点:主分区不超过4个,单个分区容量最大2TB 分区工具fdisk只能给硬盘做MBR分区, ...

  7. 装系统 ---------- 了解 UEFI与Legacy、硬盘分区MBR和GPT

    UEFI:全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface),一种详细描述类型接口的标准.这种接口用于操作系统自动从预启动的操作环境,加载到一种 ...

  8. 如何将Windows8系统的磁盘格式(GPT格式)转换成Windows 7系统的磁盘格式(MBR格式)

    知识点分析:随机预装Win8的电脑,磁盘为GPT格式的,如果需要安装Win7等早期版本系统,需要转换为MBR格式的,使用Diskpart命令即可完成转换.操作步骤: 注意:转换磁盘格式需要清空磁盘中的 ...

  9. 硬盘分区形式(MBR、GPT)、系统引导、文件系统、Inode和Block

    目录 MBR和GPT MBR的局限性 GPT的优势 主分区.扩展分区和逻辑分区 挂接卷 Legacy.UEFI引导和GRUB引导 文件系统(FAT16.32.NTFS和EXT2.3.4.Xfs.Tmp ...

随机推荐

  1. shell 中执行Oracle查询和执行存储过程

    [oracle@master2 test]$ more b.sh #!/bin/sh #数据库地址 ip=192.168.1.250 port sid=orcl username=c##scott p ...

  2. linux之网络命令

    本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof.ip.tcpdump.iptables等. 本文不会深入研究这些命令的强大用法,因 ...

  3. java继承-子类调用父类的方法中包含子类重写的方法

    # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了... # 先看代码: public class Common { public static void main(String[] args ...

  4. New!Devexpress WPF各版本支持VS和SQL Server版本对应图

    点击获取DevExpress v19.2.3完整版试用下载 本文主要为大家介绍DevExpress WPF各大版本支持的VS版本和支持的.Net版本图,Devexpress WPF v19.2.3日前 ...

  5. ffmpeg 在vs配置的库名称

    avcodec.lib; avformat.lib; avutil.lib; avdevice.lib; avfilter.lib;postproc.lib;swresample.lib; swsca ...

  6. 题解 比赛 match

    比赛 match Description 有 N 支队伍打比赛.已知有如下条件: • 每支队伍恰好打了 4 场比赛 • 对于一场比赛,如果是平局,双方各得 1 分:否则胜者得 3 分,负者不得分 给定 ...

  7. HDU 6043 - KazaQ's Socks | 2017 Multi-University Training Contest 1

    /* HDU 6043 - KazaQ's Socks [ 找规律 ] | 2017 Multi-University Training Contest 1 题意: 一共 n 双袜子编号 1~n,每天 ...

  8. Can't specify target table for update in FROM clause

    UPDATE tbl SET col = ( SELECT ... FROM (SELECT.... FROM) AS x); 额外嵌套了一个 SELECT 语句 例如LeetCode 中的 Dele ...

  9. debug的基本用法

    1.关于debug debug是dos.windows提供的实模式程序调试工具: 作用:查看cpu各寄存器的内容.内存情况.在机器码级别追踪程序的运行: 命令: debug 参数:     r    ...

  10. jquery bind()方法 语法

    jquery bind()方法 语法 作用:bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数. 说明:规定向被选元素添加的一个或多个事件处理程序,以及当事件发生时运行 ...