说说GPT

不得不说,近年兴起的UEFI+GPT困扰了我们社团很久。记得大一时,老刘带我们修的第一台奇葩机子就是这种分区形式,当时对这货都没有多少研究,别无他法只能全盘转为MBR,重新安装系统。

经过几次的实验,我对GPT也或多或少有了些了解,在此给大伙讲讲吧。

先大致介绍下吧,磁盘的分区表一般有两种形式,一种是MBR,已经采用了多年,另一种是GPT,就是最近兴起的新分区形式。

MBR即主引导记录(Master Boot Record),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息。如果它受到破坏,硬盘上的基本数据结构信息将会丢失。主引导扇区内的信息是通过分区程序(Diskgenius、分区助手等)写入的,和操作系统没有关系。

MBR 有着以下的限制:
1、 支持最多 4 个主分区或者 3 个主分区+1 个扩展分区
2、 从主引导记录的结构可以知道,它仅仅包含一个 64 个字节的硬盘分区表。由于每个分区信息需要 16 个字节,所以对于采用 MBR 型分区结构的硬盘,最多只能识别 4 个主分区(Primary partition)。
3、 MBR 分区方案无法支持超过 2TB 容量的磁盘。最大扇区个数2 的32次方x每扇区 512 字节= 2TB。磁盘容量超过 2TB 以后,分区的起始位置也就无法表示了。

GPT中文名是全局唯一标识分区表(GUID Partition Table),是一个实体硬盘的分区结构。GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于 PC 常用的较旧的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。

GPT)磁盘有着以下好处:
1、 分区全为主分区,最多允许128 个。
2、 允许大于 2 TB 的卷容量,而 2 TB 是 MBR 磁盘的极限。
3、 由于分区表提供了复制和循环冗余校检 (CRC) 保护,所以更加可靠。

查看自己磁盘的分区方式也很简单,可以通过<右键点击“我的电脑→管理→磁盘管理→右击磁盘>,如下图

Image Title
Image Title

如果是MBR分区方式,则在未分区之前可以选择转换为GPT磁盘,否则会显示转换为MBR磁盘。

细说下GPT吧。GPT形式的磁盘,是必须用UEFI引导的,没有的话装系统的会提示你转成MBR再安装,因而无法安装系统。而传统BIOS又没有UEFI功能,现在一般的超级本都不再是传统的BIOS,都是有UEFI功能的,因为UEFI+GPT构成的系统,开机时间更加的快,更能体现出“超级”,也更能忽悠顾客坑更多的钱了。当然,买来的电脑就算没有UEFI功能,也是有办法解决的,得看厂商给不给力了,比如我的HP,更新了BIOS之后,就有了UEFI功能。

MBR分区表的第一个分区一般都是一个100M的系统分区,用来存放系统的引导信息,第一个分区也可以是你的系统盘,是就所谓的C盘,引导信息则存放在了C盘。总之,MBR的磁盘,引导信息永远是存放在第一个分区,而GPT则不同。GPT磁盘是用efi引导的,分区名为ESP,大小也是100M,可以是任意位置,就是说可以第一个分区为ESP,第二个分区为C盘,也可以第一个C盘,第二甚至第三…最后一个分区设为ESP分区。MBR创建引导分区的话,分区名是任意的,一般是system,创建方法也很简单,用Diskgenius(磁盘精灵)在磁盘创建一个100M的主分区就行。然而ESP创建起来就比较麻烦了。用Diskgenius是无法创建的,要用到系统自带的磁盘工具Diskpart,可以在PE、Windows里打开创建,也可以在安装系统的过程中创建,创建方法我放到装系统的时候讲述。

也就是说,MBR磁盘,第一个分区是引导分区,开机提示说系统找不到一般就是它的问题了。同理GPT磁盘,引导出了问题就找ESP吧。可以把引导分区都格式化,然后引导修复下。
PS:如果MBR磁盘,引导和系统放在了一个盘里,就别格式化修复了,直接修复吧,修不了也没办法了,谁叫你把引导和系统放在一起的- -!

再PS:MBR玩双系统的话,你可千万别再放一起了,要是第一个系统出了问题,你也没法格式化重装,因为里面还存放了第二个系统的引导信息。。。当然你可以重新创建100M引导分区,然后引导修复。先说好这风险可是很大的,搞不好俩系统都玩完。

要引导GPT磁盘,可不是那么简单的。32位的系统都无法被引导,这个记住了,别到时候怕影响系统性能装了个32位系统。想要引导GPT,你首先要先进BIOS,(BIOS不了解的记得留言,我会考虑写篇BIOS详解)把UEFI BOOT这个选项开启
Image Title,接着是让你的系统读取GPT磁盘,Win8安装盘能识别GPT而Win7安装盘无法识别,区别就在于这个文件:bootx64.efi,存在于Win8安装盘根目录下的efi\boot里,而Win7安装盘连boot这个目录都没有,无法识别GPT磁盘,想要让Win7识别很简单,复制进去就行了。

所以装Win7就不能这么想当然了,在刻盘之前,要先把bootx64.efi复制进去才能在GPT上安装系统。还有一点有没有注意到,BIOS里有个选项,叫UEFI USB [Enabled],这个功能是用来引导U盘的,不同于U盘启动工具(老毛桃、电脑店等),只要在U盘里存放bootx64.efi就行,同样是在efi\boot目录。不过有一点要注意,UEFI只能引导fat32格式的U盘,NTFS是不能引导的。

GPT所以装Win7除了刻盘,还可以用U盘来装,只要把U盘格式化成fat32,Win7光盘镜像文件全部解压到U盘,再把bootx64.efi放进去就行。

上面说过,GPT的引导区是ESP分区,要用diskpart创建,这一步可以在安装过程中进行。点击下一步到选择安装系统分区界面后,别慌忙选择

Image Title

先打开cmd(shift+F10),输入diskpart,
接着是list disk→selete disk 0→list partition→selete partition 1→delete partition。
意思是列出磁盘→选择0号磁盘→列出分区→选择分区1→删除分区。
没有空闲分区的话是无法创建分区的- -!你也可以提前在PE里删除。
PS:命令都可以用缩写形式,命令的开头三个字母就行,如图

Image Title

然后是创建GPT专有的分区,如图:

Image Title

EFI分区100M就行,但考虑到苹果系统需要200M,为了便于更换系统,就设成200M吧。
MSR微软保留分区,用于系统应急恢复。
主分区大小自定,我这里用50G=50x1024M=51200M
出于美化的角度,创建分区时可以多1M,这样创建出来的C盘会显示50.00G,而不是49.99G。
创好之后返回刷新就显示出来了。

Image Title

接下来就简单了,不多费口舌了。

小意外:
1.UEFI USB进不去
Answer:关闭UEFI security boot。因为微软只提供了win8的公密钥给主板厂商,win7的没有,开启后BIOS通不过系统验证,进不了系统。
2.无法识别GPT磁盘
Answer1:bootx64.efi有657KB的,也有1323KB的,可以换着试试。
Answer2:目前绝大多数UEFI主板都内建了EFI shell,如果没有需要在U盘里加载EFI shell,怎么加载么,可以百度找找,这篇文章就写到这啦。
坑爹的意外:
1.文件读取完后在启动界面卡住进不去
如果说你按几次esc后电脑会重启,恭喜你,UEFI里没有对应你电脑的独显驱动- -放弃吧。只能开启Legacy boot让用传统BIOS引导了,开机更快速的优势可能体现不大出来。

Cappuccino
                                                                                          2014-02-09 14:30
2014-02-09 14:203123
  • 223.67.59.2222014-02-09 21:56

    我的电脑是按照MBR方式分区的。BIOS不太清楚,可能要麻烦你写一篇有关BIOS的详解了(偷笑)。关于这篇文章,我只大概看懂了前半部分,后半部分就这么晕乎晕乎的扫了一下(汗哒哒)

  • fgfgtfyfg42014-10-15 01:45

    60GB的硬盘,一看就知道是虚拟机