MBR?GUID?GPT?Legacy?UEFI?ESP?NTFS?EXT?FAT?EXFAT?

这些到底是什么?跟磁盘有关系,有什么关系?我这个业余的家伙聊一聊这些东西到底是什么。

分区格式

​ 分区格式是一个很好理解的概念,就是我们常听说的 NTFS、FAT16、FAT32、exFAT等等。它们说是分区格式,其实更应该理解成分区的文件系统格式,因为存放文件依赖于这个格式。

磁盘格式 支持识别的操作系统 备注
NTFS Windows、macOS(支持读)、Linux(支持读) 基本是Windows御用格式,安装Windows必选之一;
FAT16 Windows、macOS、Linux 以前常用在U盘上,现在U盘已经转为FAT32,通用性强,但受限大文件存放,单个文件不能大于2GB
FAT32 Windows、macOS、Linux 以前常用在U盘上,现在U盘已经转为FAT32,通用性强,但受限大文件存放,单个文件不能大于4GB
exFAT Windows、macOS、Linux 不常见,通用性强,单个文件限制(相对于目前单个文件大小)基本被消除,据说有兼容性和文件安全性问题
Ext Linux 很老的Linux文件系统格式
Ext2 Linux 比较老的Linux文件系统格式
Ext3 Linux 有点老的Linux文件系统格式
Ext4 Linux 现在的Linux文件系统格式
HFS/HFS+ macOS macOS 10.13及以前的文件系统格式
APFS macOS macOS 10.14及以后的文件系统格式、HFS/HFS+会被自动转换成APFS
其他…

​ 常见的文件系统格式大致都在上面的表中了,其实界限还是比较清楚,Windows用到的文件格式稍少。服务器操作系统以及Linux用到的文件系统格式还有其他的,这里就不列举了,主要是想说明文件系统是存放文件资料的格式

硬盘格式类型

​ 说起来好笑,可能是我理解的不太对,但是百度百科给的硬盘格式类型竟然是我上面讲的这些。而我接下来要说到的GUID、GPT、MBR竟然被叫做分区格式。难道这个应用在(物理分隔)整个硬盘上的不是硬盘格式?难道上面应用在单个分区上的不是叫做分区格式???

​ 不重要,下面是我对于这些格式的一个理解,以及经常弄混的ESP/EFI以及Legacy做一个我自己的表述。

UEFI启动 传统BIOS/Legacy启动
硬盘格式 必须GPT/GUID(一种格式的两种叫法) 必须MBR
必需分区 ESP分区存放EFI引导,分区格式通常是FAT格式 没有要求,引导通常直接藏在某个主分区里
使用须知 必需主板支持,比较新的引导类型 正常电脑都支持,传统引导方式

​ 所以可以看到,UEFI/BIOS/Legacy只是一种引导方式的选择,仅仅代表一种方式,并不具体指某种操作。而MBR/GPT/GUID则都代表着,一整块磁盘的基本格式,本身不支持存放文件。需要在划分分区后,格式化为某一种分区类型后才能使用。

ESP/EFI区分

​ 这里因为UEFI的特殊性,经常有人分不清ESP和EFI,其实EFI分区和ESP分区本身就是一个东西。都代表的是分区的名字,而不是分区的格式。分区的格式采用的是FAT格式,通用性强。

​ 而ESP分区的全称叫做EFI System Partition,也就是EFI系统分区,你说是不是就是EFI分区?

​ UEFI引导的常用引导文件夹名字也是EFI,这就让人很迷糊。其实就是在ESP分区下面有个EFI的文件夹,里面存放着UEFI启动所需要的引导文件。

​ 还不明白?

看看这个导图,了解分区与硬盘格式之间的关系,以及ESP分区里的文件结构!

结尾语

​ 我是个小白,理解的有限,只是按照经验和自己的理解写的这篇文章,至今没碰到什么违背我理解的。如果你觉得不对,请不要跟我杠,让我错误下去。欢迎友好讨论,如果是来指点江山的,请您去知乎。