GPT与MBR。为什么不使用MBR?


32

我是Linux用户。我的笔记本电脑上没有Windows。硬盘驱动器的大小也小于2 TB。那为什么要使用GPT表呢?我不能使用旧的老式MBR吗?

我将有两个根分区,两个主分区和一个交换空间。因此,当分区不是主分区而是扩展分区时,这对性能有没有影响?


GPT不是Windows =特定的分区方法。但是,它消除了使MBR与现代硬件一起工作所需的一些麻烦。
K7AAY

Answers:


19

这对您没有任何影响。GPT的优点是:

  • 大分区,超过2 TB
  • 无限数量的主分区

在您的情况下,您不需要首先。第二步可以通过创建扩展分区并在其中创建逻辑分区来实现。

对于linux,安装哪种分区(逻辑分区或主分区)都没有关系。但是使用GPT时,如果需要,移动分区可能会更方便一些,因为它们都是主要分区。

根本没有性能差异。

GPT的所有其他“优势”都很小,因此不值得一提。


2
我喜欢拥有备份分区表,并且由于我的较新驱动器可能已插入到较新的UEFI系统中,因此我仅使用gpt并将所有efi和bios_grub分区都包括在内。我什至将gpt用于更大的闪存驱动器。但是正如Pilot6所说的那样,它没有巨大的优势。尚未注意到我的gpt分区驱动器有任何问题或差异。wiki.archlinux.org/index.php/…–
oldfred

您能否详细说明“同时包括了efi和bios_grub分区”的说法?我知道如何很好地使用gparted,但是您如何制作efi分区,又将其放入其中?我对efi分区一无所知。PS。我已经安装了大约6到8次Linux,并且从未安装超过3个分区:swap,windows_share和Linux操作系统的主要ext4分区。
加布里埃尔·斯台普斯

45

GPT有几个优点:

  • 支持大于2TiB的磁盘。
  • 支持大于2TiB的分区。
  • 支持四个以上的分区,在主分区,扩展分区和逻辑分区之间没有区别。
  • 使用GUID作为类型代码,这意味着冲突/重复代码的风险较小。
  • 与MBR双重使用LBA和CHS相比,它仅使用LBA寻址。(尽管在MBR上,CHS在大约8GB以上的磁盘上也没有用,所以在现代硬盘上发生真正冲突的风险很小,因为实际硬盘的冲突要大得多。)
  • 在磁盘的开头和结尾提供重复的分区表结构,从而可以从某些类型的用户错误,错误和磁盘损坏中进行恢复。
  • 提供重要数据结构的校验和,从而可以检测某些类型的分区表损坏。
  • 提供一个UTF分区描述字段,因此您可以指定分区名称。请注意,这与分区中包含的文件系统的名称无关。
  • 由EFI / UEFI固件本地使用。

请注意,一个tebibyte(TiB; 1024 ^ 4字节)和一个TB(TB; 1000 ^ 4字节)之间的差异。前者是IEEE-1541单位,而后者是SI单位。对于大多数磁盘测量,IEEE-1541单位更自然。一些文档和软件(尤其是较旧的文档)将SI后缀错误地应用于IEEE-1541测量,这令人困惑。

这些优点中的大多数对于大多数安装来说都是次要的。两个最重要的优点是GPT是EFI的自然划分方案,并且缺乏主要/扩展/逻辑区别。GPT的其他优势相结合却值得注意,但对于大多数人来说并不是一个难以解决的问题。

自2011年中以来推出的大多数计算机,包括Windows 8和更高版本附带的绝大多数系统,都使用EFI固件。如果您以EFI模式引导此类计算机(而不是使用启用BIOS模式引导的CSM)引导,则默认情况下使用GPT。如果您以EFI模式引导(或双引导)Windows,则需要使用GPT (这是Windows的限制)。IIRC,Ubuntu也不会以EFI模式安装到MBR磁盘,但是您可以转换分区表类型并在安装后启动它。但是,在EFI模式下从MBR磁盘启动的测试很差,并且可能在某些EFI上失败。

MBR的主要/扩展/逻辑区别是在1980年代为克服MBR的四分区限制而创建的一种笨拙的hack。GPT默认支持128个分区,但是如果绝对需要,可以提高该限制。MBR逻辑分区的访问速度并不比主分区慢,但是它们更容易受到破坏,因为它们依赖于跨整个磁盘分散的多个扇区的链表数据结构。最大的问题是简单地处理麻烦,例如用尽主分区或处理涉及主分区和逻辑分区的分区调整大小操作(因此,这还需要调整扩展分区的大小,这是一项额外的操作,并且有更多的机会进行某些操作)会出错)。

如果要在subTitan 2TiB磁盘上以BIOS模式启动,则最好坚持使用MBR,这仅仅是因为有些BIOS对从GPT磁盘启动的反应不佳。通常可以解决这些问题,但一开始就不容易遇到这些问题。在基于BIOS的计算机上使用GPT也将阻止您在该系统上安装Windows。但是,如果您知道自己在做什么并且想使用GPT,则可以在BIOS模式下使用GPT进行Ubuntu安装,并且我不会阻止您这样做-但是如果遇到问题,您可能会需要解决它。

不过,由于大多数现代计算机都使用EFI,因此如果您以EFI模式启动,可能只需要GPT 。如果您在这样的计算机上使用BIOS / CSM /旧版模式,则出于上述原因,仍然首选MBR。FWIW,如果您可以选择的话,我目前的建议是禁用 BIOS / CSM /旧式支持,并仅在基于EFI的计算机上使用EFI模式。这简化了引导路径,并减少了遇到问题的可能性。问题在于,有很多不好的建议可以做相反的事情,据我估计,这会带来更多的问题,而不是解决的问题。(例如,在此站点上进行的搜索显示了由跨模式操作系统安装引起的许多问题,以及与在基于EFI的计算机上使用BIOS / CSM /旧模式相关的其他问题。)

如果您拥有超过2TiB的磁盘,则几乎必须使用GPT。主要的例外情况是磁盘使用4096字节的逻辑扇区大小,从而将2TiB MBR限制提高到16TiB。一些外部磁盘可以执行此操作,我也听说过一些高端内部磁盘也可以执行此操作。(请注意,许多磁盘具有4096字节的物理扇区和512字节的逻辑扇区。它们具有与具有512字节的物理和逻辑扇区的磁盘相同的2TiB MBR限制。)


1
很好地解释了这一点。就我而言,我的笔记本电脑是Sony vaio,没有OEM窗口的efi引导是一场噩梦。我无法使计算机从安装的新ssd中加载grub,而不得不从USB中加载grub,然后从那里手动启动Ubuntu。因此,我只是重新分区到了MBR样式表,一切对我来说都很好。
daltonfury42 2015年

好信息!就我而言,当我使用妻子的旧版〜2008 Macbook白色电脑时,无法引导到MBR分区的拇指驱动器,该驱动器上已完整安装Lubuntu(NOT Live USB)。我认为它期待EFI引导,因此我在Macbook上安装了rEFInd,尽管它看到我的Lubuntu磁盘(拇指驱动器),但是当我从rEFInd引导菜单中选择它时,却出现“无法引导的设备”错误。我能想到的是,如果我将Lubuntu重新安装到带有GPT分区的便携式拇指驱动器上,也许可以在我妻子的Macbook上使用,所以这就是我现在要尝试的方法。祝我好运!
加布里埃尔·斯台普斯

rEFInd可能会尝试以BIOS / CSM /传统模式启动USB驱动器,这与Macs上的外部磁盘有点相抵触-有时可行,有时却不可行。假设磁盘上甚至有一个BIOS模式的引导加载程序,事实并非如此。使用rEFInd,通常最好直接以EFI模式启动Linux内核。但是,这需要正确的EFI文件系统驱动程序。它还假定EFI和内核具有相同的位深度。在这样的旧Mac上,情况可能并非如此。
罗德·史密斯,

小加成。我不明白如何做,但是与MBR相比,在500 Gb HDD上制作一个大的GPT分区会提供更大的可用空间。两者之间的差异很小,可以忽略不计(不到1 Mb),但是它有利于GPT。
mmv-ru

mmv-ru,最有可能是所使用的分区工具的人工产物。MBR仅消耗磁盘上的一个扇区。从理论上讲,您可以将一个扇区以外的所有扇区分配到一个分区(或最多四个分区)。相比之下,GPT消耗67个扇区(假定512字节扇区和默认分区表大小),因此GPT下的理论最大可分配空间比MBR下 66个扇区。当然,分区工具实际上是做什么的。我的猜测是,您所看到的是由MBR工具引起的,该工具在磁盘末端留下了空白。
罗德·史密斯

1

我几个月来一直在想这个问题。这是Windows对您的问题的回答:GPT在我看来似乎要快得多。到目前为止,我还没有找到任何支持以下内容的测试结果,尽管我发现许多猜测表明,除了启动时,性能差异可以忽略不计。我现在不太确定。这是我的勤奋值得:

我有一个2TB的Samsung D3 USB 3.0外置驱动器。我将其分为两个MBR分区,每个分区约1TB。我的电脑是Windows 10 64位,华硕Z97-P m / b,8GB内存,i5 4460 CPU。在使用MBR进行格式化时,我对其进行了3次CrystalDiskMark x64测试,并得到了以下信息:

MBR平均结果(所有MB / s):-读取SEQ Q32T1 40-读取4K Q32T1 1.47-读取SEQ 142-读取4K 1.22-写入SEQ Q32T1 101-写入4K Q32T1 8.7-写入SEQ 112-写入4K 8.5

由于有大量的空闲时间,我退回了数据(大约750GB),重新格式化为GPT,在这种情况下,将其格式化为单个2TB分区,将数据复制回磁盘,然后再次运行测试:

GPT平均结果(所有MB / s):-读取SEQ Q32T1 165-读取4K Q32T1 1.83-读取SEQ 170-读取4K 1.5-写入SEQ Q32T1 135-写入4K Q32T1 8.7-写入SEQ 138-写入4K 8.6

因此,使用GPT时SEQ Q32T1的结果要高得多,而使用GPT时,其他所有结果都肯定要高得多,尽管不一定总是很明显。

对于这些差异的实际日常意义,我当然不是专家,但是我现在很想在我认为可以解决的时候使用GPT(例如,避免使用无法读取它的旧操作系统)。


3
我怀疑这种差异是由于MBR-> GPT的变化引起的。MBR测试可疑地接近通过USB 2连接的驱动器的〜40MB / s极限。三星D3是USB 3,我怀疑您的MBR测试回退到USB 2(是否使用了相同的端口?)
0xF2

是的,我使用了相同的端口,驱动器一直被插入(USB 3.0 m / b集成端口)。
JumpingJumping '16

7
分区表无法以任何方式提高速度。测试中出了点问题。
Pilot6 '16

8
GPT和MBR数据结构都很简单,因此它们引起的任何性能差异都应该很小。因此,您可能已经发现了一个令人尴尬的错误,或者您的测试方法存在问题。我注意到您为两个测试创建了不同大小的分区,这可能会产生重大影响。如果您进行了文件级备份和还原,则将更改文件所在的位置及其碎片,这可能会影响结果。换句话说,您有多个变量,因此无法确定哪个变量导致了您看到的结果。
罗德·史密斯Rod

2
很奇怪,因为分区表在加载后会被操作系统(存储在RAM中)记住。文件的写入速度受文件系统类型和文件性质(几大或几百万个小)的影响。MBR / GPT之间的差异可能只有很小的延迟(毫秒和更少),这在加载分区表时会发生...而且,该表不会重新加载,直到拔出磁盘或请求(某些应用程序更改为分区结构) 。
克拉韦米尔'18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.