首先,我们先从硬盘存储开始,我们的机械硬盘HDD(Hard Disk Drive),盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精密设备,进入硬盘的空气必须过滤。

聊聊MBR与GPT分区表_第1张图片
对于硬盘扇区、磁道、柱面的基本概念的理解:
head磁头:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头
track 磁道:从外圈往里圈0、1、2按顺序编号
cylinder 柱面:磁道的集合,每个盘片的0磁道组合就是0柱面,1磁道组合就是1柱面
sectors 扇区:每个磁道又划分大小为512bytes的扇区
platter 圆盘:盘片

聊聊MBR与GPT分区表_第2张图片
CHS(cylinder head sector):
什么是CHS?
百度百科:https://baike.baidu.com/item/CHS/3794705?fr=aladdin
从CentOS6中,我们依然可以看到其fdisk -l保留了CHS寻址方式的显示方式
CHS是一个三元组,组成如下

  • 采用24bit位寻址
  • 其中前10位表示cylinder,中间8位表示head,后面6位表示sector
  • 最大寻址空间8GB (512*2^6*2^10*2^8=8589934592=8GB)

LBA(logical block addressing)

  • LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
  • ATA-1规范中定义了28位寻址模式,以每扇区512位组来计算,ATA-1所定义的28位LBA上限达到128 GiB。2002年ATA-6规范采用48位LBA,同样以每扇区512位组计算容量上限可达128 Petabytes

由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

我们为什么分区?

  • 优化I/O性能
  • 实现磁盘空间配额限制
  • 提高修复速度
  • 隔离系统和程序
  • 安装多个OS
  • 采用不同文件系统

两种分区方式:MBR,GPT

  • MBR: Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
  • 如何分区:按柱面
  • 0磁道0扇区:512bytes
    • 446bytes: boot loader
    • 64bytes:分区表,其中每16bytes标识一个分区
    • 2bytes: 55AA
  • MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区结构

  • 硬盘主引导记录MBR由4个部分组成
  • 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序
  • 出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节
  • 分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
  • 结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA
    聊聊MBR与GPT分区表_第3张图片

聊聊MBR与GPT分区表_第4张图片

GPT分区

  • GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)
  • 使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位
  • UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
    聊聊MBR与GPT分区表_第5张图片

MBR与GPT分区表的开机启动

作者:知乎用户
链接:https://www.zhihu.com/question/28471913/answer/155332057
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UEFI+GPT最好用64位操作系统。

似乎人人都可以张嘴就说“我懂电脑”,但是总有一些看起来完全不懂但实际上非常基础的东西让“懂”与“不懂”清晰地划清界限。比如UEFI+GPT就是其中之一,那些之前认为自己已经精通电脑的人,遇到这个东西,忽然发现自己连系统都不会装了。 尽管UEFI以及GPT从诞生迄今已经十余年了,但是由于它们的不普及性,导致对于绝大多数人来讲它们是完全陌生的 ,甚至根本就不知道还有这种东西。 但是由于Windows8操作系统的面世,预装Windows8的电脑开始统一采用UEFI+GPT,很多人被迫接触到,感觉就像突然从天上掉下来的东西一样,无所适从,一筹莫展—— “这到底是个什么东西呢?” 一旦出现系统问题,唯一能做的解决办法除了品牌机自带的系统还原,最大能力不过就是把UEFI关闭,把硬盘从GPT再转成MBR,从而彻底毁掉UEFI+GPT的优势,重新回到陈旧落后的BIOS+MBR的系统安装和运行方式上来。

1、GPT能使用大于2.2T的硬盘,MBR不行。支持最大卷为18 EB(1EB=1048576TB)。

2、GPT可以支持无限个分区,微软目前的限定是128个。Linux、ubuntu、macos都能支持这种分区格式。MBR最多4个主分区,超过4个再分区只能通过逻辑分区。

3、GPT分区磁盘有备份分区表来提高分区数据结构的完整性。

4、UEFI + GPT 开机启动更快,开机时跳过外设检测,并且可以实现启动时原生分辨率,搭载固态硬盘开机时间很短,十秒左右。(没有开机硬件自检会稍微快了那么1、2秒)

5、UEFI + GPT 支持Secure Boot。通过保护预启动或预引导进程,抵御bootkit***,从而提高安全性。所有在开机时比Windows内核更早加载,实现内核劫持的技术,都可以称之为Bootkit。

6、UEFI BIOS 可用鼠标操作图形界面,不再是枯燥的蓝底白字的英文。(Intel提出,用于取代BIOS)。UEFI的优越特性:可操作性、安全性、兼容性、可扩展性。

BIOS+MBR的系统引导文件可以和系统文件在同一分区的根目录,也可以不与系统文件同一分区,只要系统引导文件所在分区为活动的主分区即可启动操作系统;而UEFI+GPT只能把系统引导文件放置在ESP分区,且操作系统必须在另外的主分区,也就是说,UEFI+GPT强制要求系统启动文件与系统文件必须分离,不在同一分区。

BIOS+MBR一旦系统安装好之后,如果系统引导文件在单独的分区,此分区可以在操作系统中可见,也可以设置此分区为隐藏,系统都可以正常启动;而UEFI+GPT系统引导文件所在的ESP分区在操作系统中为不可见,进入系统后自动隐藏。


这个是传统的Legacy运行流程:

;
这个是UEFI运行流程:

;
对比采用传统BIOS引导启动方式,UEFI BIOS减少了BIOS自检的步骤,节省了时间,从而加快平台的启动。

----------拓展,兴趣就往下读--------------

BIOS和UEFI、MBR和GPT 搭配情况:

(1)BIOS+MBR:可用,可启动系统。最常见!这是最传统的,系统都会支持;唯一的缺点就是不支持容量大于2T的硬盘。

(2)BIOS+GPT:可用,但是无法启动系统。BIOS是可以使用GPT分区表的硬盘来作为资料盘的,但不能引导系统;若电脑同时带有容量小于2T的硬盘和容量大于2T的硬盘,小于2T的可以用MBR分区表安装系统,而大于2T的可以使用GPT分区表来存放资料也没什么问题。但系统须使用64位系统。

BIOS+GPT也是合理的模式,但这种模式下无法启动此硬盘上的系统,而如果只是作为存储盘,则没有什么影响。主硬盘BIOS+MBR装系统、软件,次硬盘BIOS+GPT存储文件,这是很多影音文件发烧友在使用的模式。

(3)UEFI+MBR:可以把UEFI设置成Legacy模式(传统模式)、打开CSM兼容模块,让其支持传统MBR启动,但纯属瞎折腾,带来的效果同BIOS+MBR。没有意义。

(4)UEFI+GPT:可用,可启动系统。最常见!未来趋势。如果要把大于2T的硬盘作为系统盘来安装系统的话,就必须如此。而且系统须使用64位系统,否则无法引导。但系统又不是传统在PE下安装后就能直接使用的,引导还得经过处理才行。UEFI和GPT是相辅相成的。

UEFI+GPT并不能非常有效的提高开机速度(当然,还是有点作用的),网传的X秒启动,大多数是混淆了WIN8/8.1的假关机功能造成的。理性对待UEFI+GPT,这只是一个新模式,不是神话。