磁盘分区MBR和GPT格式详解(Linux)

article/2025/9/25 6:25:33

一、磁盘结构

在这里插入图片描述
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,数据存放在具有磁性物质的磁盘盘片中。
实际运行时,主轴马达让碟片转动,然后磁头臂让磁头在碟片上面进行读写操作。
在这里插入图片描述
读取数据时以磁头转圈的方式进行,在磁片同心圆中切出一个一个的小区块,这些小区块就是磁盘的最小物理存储单位,成为扇区(sector),同一个同心圆的扇区组合成的圆就是磁道(track)。由于磁盘里可能会有多个碟片,因此在所有碟片上面的同一个磁道可以组成 柱面(cylinder)。
在这里插入图片描述
外圈的圆比较大,为了合理利用这些空间,磁盘外圈圆会比内圈有更多的扇区。所以,当碟片转一圈时,外圈的扇区数量比较多,因此如果数据写入在外圈,转一圈能够读写的数据量比内圈多。因此数据的读写会由外圈开始向内写,这是默认的方式。

原本硬盘的扇区都是设计成512B的大小,但随着硬盘容量的增大,为了减少数据量的拆解,目前绝大多数的高容量硬盘使用了4K大小的扇区设计。

为什么要分区?

  • 1.数据的安全性
    每个分区的数据是分开存储的,当要对某个分区的数据进行整理时,不会影响到其它分区。例如对安装有Windows系统的C盘进行重装时,对其它分区如D盘、E盘中的数据不会产生影响。
  • 2.系统的性能
    某个分区处在特定范围的柱面范围内,当要在该分区内读取数据时,只需要在其柱面范围内检索,由于数据较为集中,所以读取速度和性能较高。

主要的分区格式有早期的MBR格式和新的GPT格式。

二、分区格式

1、MBR

(1)简介

MBR分区格式中柱面是文件系统的最小单位,也就是分区的最小单位。

第一个扇区(旧式磁盘中为512字节)中存放着启动引导程序和分区表:

  • 主引导记录(Master Boot Record, MBR):可以安装启动引导程序的地方,有446字节;
  • 分区表(partition table):记录整块硬盘分区的状态,有64字节。

分区表64字节最多仅能有四组记录区,每个记录区16字节。
四个主分区
如图中有4个主分区。

总结:

  • 所谓的分区就是针对64字节的分区表进行设置而已。
  • 磁盘默认的分区表仅能写入四组分区信息,每组记录区记录了该区段的起始与结束的柱面号码。
  • 这四个分区的记录被称为主要(Primary)分区扩展(Extended)分区
  • 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。

(2)扩展分区和逻辑分区:

扩展分区的目的是使用额外的扇区来记录分区的信息,扩展分区本身并不能被拿来格式化。

扩展分区可以继续划分出逻辑分区(logical partition)

/dev/sda[1-4] 都是留给主分区或扩展分区用的,所以逻辑分区的设备文件名就从 sda5 开始。
在这里插入图片描述
图中分区在Linux下的文件名是:
P1:/dev/sda1
P2:/dev/sda2
L1:/dev/sda5
L2:/dev/sda6
L3:/dev/sda7
L4:/dev/sda8
L5:/dev/sda9

总结:

  • 主分区和扩展分区最多可以有4个(硬盘限制)。
  • 扩展分区最多只能有1个(操作系统限制)。
  • 逻辑分区是由扩展分区持续划分出来的分区。
  • 能够被格式化后作为数据存取的分区是主分区和逻辑分区,扩展分区无法格式化。
  • 逻辑分区的数量依操作系统而不同,在Linux中SATA硬盘已经可以突破63个以上的分区限制。
  • 一般建议将扩展分区的柱面号码分配到最后的柱面内。

MBR模式简略图
在这里插入图片描述
MBR分区表结构

偏移长度(字节)意义
00H1分区状态:00–>非活动分区;80–>活动分区;其它数值没有意义
01H1分区起始磁头号(HEAD),用到全部8位
02H2分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位
04H1文件系统标志位
05H1分区结束磁头号(HEAD),用到全部8位
06H2分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位
08H4分区起始相对扇区号
0CH4分区总的扇区数

(3)MBR分区大小限制的问题:

分区表组最后4个字节表示分区中的扇区数量,有4*8=32位,最大值为 20+21+ … +231 = 232-1 个扇区,每个扇区大小为512字节,所以能表示的最大容量为 :
( 2 32 − 1 ) ∗ 512 = 2199023255040 b y t e s = 2048 G B = 2 T B (2^{32}-1) * 512= 2199023255040 \, bytes = 2048 \, GB = 2 \, TB (2321)512=2199023255040bytes=2048GB=2TB注意这里是用1:1024换算的,硬盘制造商使用1:1000换算,所以就会得出2.2TB的结果。

2TB是对单一分区容量的限制,如果第一个分区就占了2TB,那么其第二个分区的扇区物理地址就无法表示了,所以2TB也是对整个硬盘最大容量的限制

详细说明见Wiki页面:https://zh.wikipedia.org/wiki/Master_boot_record

MBR的弊端:

  • 操作系统无法使用2.2TB以上的磁盘容量。
  • MBR仅有一个区块,被破坏后经常无法或很难恢复。
  • MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码。

2、GPT

(1)简介

如今扇区大小不仅有512字节的,还有4K大小的。为了兼容所有的磁盘,使用逻辑区块地址(Logical Block Address,LBA)来处理扇区。GPT将硬盘所有区块以LBA(默认512字节)来规划,第一个LBA称为LBA0。

与MBR仅使用第一个512字节来记录不同,GPT使用了34个LBA来记录分区信息。相比于MBR中只有一个区块记录分区信息,GPT除了前面34个LBA记录以外,整个磁盘的最后34个LBA也拿来做备份。
在这里插入图片描述

(2)LBA

  • LBA0(MBR兼容模块)
    出于兼容性考虑存储了一份传统MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。
    分为两个部分,第一个是前面446字节,用来存储第一阶段的启动引导程序。而在原本的分区表的记录区内,这个兼容模式仅放入了一个特殊字符来表示此磁盘为GPT格式之意。
    在使用 MBR/GPT 混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。

  • LBA1(GPT表头记录)
    记录了分区表本身的位置和大小,也记录了备份用的GPT分区(最后34个LBA区块)放置的位置。同时放置了分区表的校验码(CRC32),操作系统可以根据这个校验码来判断GPT是否正确。若有错误可以通过这个记录区来获取备份的GPT(磁盘最后面的备份区块)来恢复正常。

  • LBA[2-33](实际记录分区信息处)
    从LBA2区块开始,每个LBA都可以记录4组分区记录,所以在默认情况下,总共有4*32=128组分区记录。每组记录用到128字节的空间。

起始字节长度内容
016字节分区类型GUID
1616字节分区GUID
328字节起始LBA(小端序)
408字节末尾LBA
488字节属性标签(如:60表示“只读”)
5672字节分区名(可以包括36个UTF-16(小端序)字符)

(16+16+8+8+8+72=128)

(3)GPT分区大小限制:

GPT 在每组记录中分别提供了 8字节 = 64位 来记载开始/结束的扇区号码。因此,理论上对于单一分区槽来说, 它的最大容量限制为 264 * 512bytes = 263 Kbytes = 233TB = 8 ZB 。但是受操作系统限制,一般一个分区最大限制为 18EB

GPT 分区没有所谓的主、扩展、逻辑分区的概念,每个都可以视为是主分区,每一个分区都可以格式化。

GPT 分区默认可以提供多达128 组纪录,而在Linux 本身的内核设备记录中,针对单一磁盘来说,虽然过去最多只能到达15 个分区,不过由于Linux 内核通过udev 等方式的处理,现在Linux 也已经没有这个限制了。

参考链接:1.https://en.wikipedia.org/wiki/GUID_Partition_Table
2.https://docs.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/guid-partitioning-table-disk-faq


http://chatgpt.dhexx.cn/article/bNK3uwjo.shtml

相关文章

硬盘MBR格式转换GPT,简单方法,你会吗?

今天和大家分享一个如何无损将MBR分区表转换为GPT分区表,免去重装系统的繁琐过程的好方法。 现在我们的硬盘越来越大,相信大家也知道MBR格式不支持大于2T的硬盘。所以这里教大家如何进行转换! 首先介绍下什么是MBR和GPT MBR:MB…

UEFI与BIOS、GPT与MBR的区别

版权声明:未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!! 1 磁盘分区格式 一般来说,磁盘分区表有两种格式:MBR和GPT…

磁盘分区形式MBR与GPT介绍

磁盘分区形式MBR与GPT介绍 磁盘分区形式有两种: 1、MBR(主启动记录)形式,它是存在于磁盘驱动器开始部分的一个特殊的启动扇区; 2、GPT(GUID分区表)形式,它是一种使用UEFI启动的磁盘…

Legacy和UEFI,MBR和GPT的区别

Legacy和UEFI指的是系统引导方式(Legacy为传统BIOS,UEFI为新式BIOS),MBR和GPT指的是磁盘分区表类型。 一般情况下都是LegacyMBR, UEFIGPT这两种组合。但LegacyGPT,UEFIMBR也可以实现。 Legacy用的是8086汇编,UEFI 99…

BIOS修改mbr为gpt的步骤

之前传统的硬盘分区模式都是mbr,但是现在的win10系统硬件不断扩容,传统分区模式已经不能满足了,所以我们就可以将硬盘mbr改成gpt,那么要如何操作呢?其实方法也不难,针对这个问题,下文小编给大家…

MBR和GPT分区区别

MBR分区和GPT分区区别 总结:UEFI是新式的BIOS,legacy是传统BIOS。你在UEFI模式下安装的系统,只能用UEFI模式引导;同理,如果你是在Legacy模式下安装的系统,也只能在legacy模式下进系统。UEFI只支持64为系统…

详解MBR与GPT分区

1 MBR分区 MBR是Master Boot Record的缩写,是一种旧的分区表格式,用于在硬盘上标识和管理分区。MBR分区表可以标识最多4个主分区或3个主分区和1个扩展分区。 2TB的限制是指,使用MBR分区表格式的硬盘最大只能分区到2TB,因为MBR使…

不支持打开非业务域名htts:....请重新配置

最近做小程序加载html 出现的提示 自己的处理方法是点击右上角的详情 勾选即可

fiddler 抓取 htts 失败

1.清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA 目录下所有文件(首次安装fiddler请忽略) 2.清除电脑上的根证书,WINR快捷键,输入:certmgr.msc, 然后回车,查找所有fiddler证…

Spring cloud Gateway HTTS配置

在Web服务应用中,为了数据的传输安全,使用安全证书,使用TLS/SSL加密。这里就介绍一下Spring Cloud Gateway的HTTPS配置。 7.1 TLS/ SSL配置 TLS:安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性…

漫画:htts是如何保证一台主机把数据安全发给另一台主机

通过漫画的形式由浅入深带你读懂htts是如何保证一台主机把数据安全发给另一台主机的 对称加密 一禅:在每次发送真实数据之前,服务器先生成一把密钥,然后先把密钥传输给客户端。之后服务器给客户端发送真实数据的时候,会用这把密钥…

给网站配置免费的HTTS证书

最近看到网上说 https 的网站 Google 会优先收录,所以就抽时间记录下配置博客的过程。 ACME 使用 LetEncrypt 证书作为博客的 https 实现方式。 acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书. github https://github.com/Neilpang/acme.sh 主要步骤…

htts ca 制作

https://www.cnblogs.com/gsls200808/p/4502044.html rm -rf /etc/pki/CA/*.old touch /etc/pki/CA/index.txt echo 01 > /etc/pki/CA/serial echo 02 > /etc/pki/CA/serial rm -rf keys mkdir keys 生成根CA并自签(Common Name填RootCA) openssl genrsa -des3 -out ke…

阿里云服务器nginx配置ssl步骤htts

阿里云服务器中要配置ssl 1.先在服务器安装nginx,安装步骤自行搜索,很多。 2.获取ssl证书,可以参考https://mp.csdn.net/console/editor/html/87912845这篇文章,里面有阿里云的免费证书获取方式。 3.安装好以后打开nginx配置文件。 在里面…

Spring Boot 配置 Https 自己生成htts证书

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u012702547/article/details/99405309 https 现在已经越来越普及了,特别是做一些小程…

Git 的HTTS和SSH方式的区别和使用

文章目录 前言HTTPS协议模式SSH 协议模式1.确认自己电脑是否拥有SSH密钥:2.生成 SSH 密钥3.将SSH密钥添加到服务器4.利用SSH密钥推送 参考链接: 前言 Git 有两种远程仓库与本地仓库之间 push/clone/pull 等操作的验证模式。一种是 HTTPS 模式&#xff0…

TCP / IP 协议族和HTTS

TCP / IP 协议族 概念 一系列协议所组成一个网络分层模型 为什么要分层? 因为网络的不稳定性 如果我们传一个50M的数据,如果失败,每次都将需要重新传50M,但我们把它分成多块,失败时候只需重新传输失败的那一块。 具…

htts 原理

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和…

charles抓htts包总结

参考:Charles问题之抓Android手机应用Https包,出现Unknown - 简书 (jianshu.com)Charles问题之Windows10下抓取https包,出现unknown - 简书 (jianshu.com) 一、安装charles root证书 二、在浏览器安装证书(用以电脑浏览器抓https) 三、手机抓…

htts加密过程

文章目录 HTTPS 什么是HTTPS什么是‘加密’ 加密的方式有哪些 对称加密非对称加密 总结HTTPS传输过程 什么是HTTPS HTTPS与HTTP一样都是应用层协议,与HTTP不同的是:HTTP的协议内容都是按照文本方式进行明文传输的,这导致在传输过程第三方者…