MBR与GPT分区格式(实例-创建大于2TB的分区)

本文介绍如何使用GPT分区表创建超过2TB的大容量硬盘分区,并详细解释了MBR与GPT的区别。通过Parted工具的操作步骤,展示了如何在Linux环境下创建及格式化一个大于2TB的分区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 关键词

MBR和2TB的限制
在使用fdisk建立分区时,我们最大只能建立2TB大小的分区,如果你的磁盘(阵列)大于2TB,只能通过划分多个分区的方法才能充分利用磁盘容量,这对于使用小于2TB分区的朋友没啥影响,但对于使用大于2TB分区(比如5TB的分区)的朋友就会遇到问题了,要突破这个限制;我们先来了解下MBR(Master Boot Record)和GPT(GUID Partition Table).


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

MBR是由分区程序(如Fdisk,Parted)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。

从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是主分区(Primary partition)的一种,但它与主分区的不同在于理论上可以划分为无数个逻辑分区,每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)
在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。
在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。你有一个3T的硬盘,根据要求你至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。如果硬盘太大则必须改用GPT



GPT 
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。

与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。


EFI 
可扩展固件接口(英文名Extensible Firmware Interface 或EFI)是一种个人电脑系统规格,用来定义操作系统与系统韧体之间的软件界面,为替代BIOS的升级方案。可扩展固件接口负责加电自检(POST)、连系操作系统以及提供连接操作系统与硬件的接口。
EFI最初由英特尔开发,现时由UEFI论坛来推广与发展。


UEFI 
是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织,贡献者有Intel,Microsoft,AMI,等几个大厂,属于open source,目前版本为2.1。

 

 

二 创建一个大于2TB的分区

MBR 与 GPT,都是分区格式,其中MBR最大分区小于等于2TB,而GPT分区没有2TB的限制,理论最大分区18 EB!

现在我们知道了要创建一个大于2TB的分区,就不能使用MBR 格式的分区表了,而要使用GPT格式的分区表,我们最常用的fdisk 分区工具就爱莫能助了,需要使用linux 下的Parted分区工具!

测试环境为:

Dell R710  2u 服务器

cpu 2* XEON 5606 

mem 16G

disk 6*1TB sas 7200rpm

raid raid level 5  perc 6i卡

rhel 6 64bit ,创建一个4TB大小分区

下面正式开始分区:

1 在使用parted 分区之前,我们先用fdisk -l 来查看下硬盘信息!


2 上边的信息我们知道 /dev/sdb 4.6TB,现在使用parted 命令,如下图。

 

3 进入parted 后,执行2,3,4,5,6,7,8,9,10,10,11步骤,指令下边有解释!

 

4 分区完成后使用print 可以看到刚才分区的信息!大小 4684GB

 

5 quit 用于退出parted环境,信息提示更新/etx/fstab!

 

6 再用fdisk -l 来查看下 sdb硬盘,现在已经有sdb1 分区了,注意system gpt!


7 parted 到这里就完成了!

 

下面格式化/dev/sdb1 文件系统为EXT4:

1 执行 mkfs.ext4 /dev/sdb1 一路回车即可!

 

更新/etc/fstab :

1.使用blkid 查看分区的uuid 如下图,复制新分区/dev/sdb1的 UUID

2 将 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 挂载在 /data 目录下!

3 至此全部完成, 下面检查一下!

mount -a 重新挂载 /etc/fstab 文件中的记录!

mount 可以发现 /dev/sdb1 已经挂载到 /data 目录下了!

df -h 发现 /data 4.2TB

 

三 详细介绍下Parted命令

[root@abintel ~]# parted --help
用法:parted [选项]... [设备 [命令 [参数]...]...]
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行。

选项:
-h, --help                    显示此求助信息
-i, --interactive             在必要时,提示用户
-s, --script                  从不提示用户
-v, --version                 显示版本

命令:
检查 MINOR                   对文件系统进行一个简单的检查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR      将文件系统复制到另一个分区
help [COMMAND]                打印通用求助信息,或关于 COMMAND 的信息
mklabel 标签类型              创建新的磁盘标签 (分区表)
mkfs MINOR 文件系统类型       在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点      创建一个分区
mkpartfs 分区类型 文件系统类型 起始点 终止点 创建一个带有文件系统的分区
move MINOR 起始点 终止点      移动编号为 MINOR 的分区
name MINOR 名称               将编号为 MINOR 的分区命名为“名称”
print [MINOR]                 打印分区表,或者分区
quit                          退出程序
rescue 起始点 终止点          挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点    改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR                      删除编号为 MINOR 的分区
select 设备                     选择要编辑的设备
set MINOR 标志 状态           改变编号为 MINOR 的分区的标志

注意

mklabel label-type 必须是一下这些类型:

* bsd

* loop (raw disk access)

gpt

* mac

msdos

* pc98

* sun

例:(parted) mklabel gtp 或者 (parted) mklabel msdos

 

mkpart(建立新分区)

格式:mkpart part-type fs-type start end  

建立一个新的分区

part-type是以下类型之一 primary(主分区), extended(扩展分区), logical(逻辑分区)。

fs-type来指定文件系统,比如ext4 。

start和end是新分区开始和结束的具体位置。0表示起止,-1表示结尾;或者以mb表示或者GB表示!

本文出自 “dongnan” 博客,请务必保留此出处http://dngood.blog.51cto.com/446195/647702

## 📊 亚马逊EC2添加大于2TB磁盘终极指南:突破MBR限制,掌握GPT分区 > **关键词:** AWS EC2, EBS卷扩容, 2TB以上磁盘, GPT分区, Linux磁盘管理, XFS文件系统, 高性能存储 ### 🌟 引言 你是否在为EC2实例存储空间不足而烦恼?当业务数据突破2TB时,传统的MBR分区方案突然失效,系统提示"无法识别磁盘"?**超过83%的运维人员在首次配置大容量EBS卷时会遇到分区表陷阱**。本文将手把手教你如何在AWS EC2上安全添加并配置大于2TB的磁盘,彻底解决存储瓶颈! --- ### 🔥 一、 为什么2TB是个关键门槛? #### 技术原理揭秘 ```mermaid graph LR A[磁盘分区表类型] --> B[MBR] A --> C[GPT] B -->|最大支持2TB| D[传统BIOS] C -->|理论支持18EB| E[UEFI] ``` - **MBR(主引导记录)**:诞生于1983年,最大支持2.2TB磁盘 - **GPT(GUID分区表)**:现代标准,支持最高18EB(1EB=100万TB)存储 - **AWS EBS单卷上限**:当前已提升到**16TB**(gp2/gp3)或**64TB**(io2) > 💡 **真实案例**:某电商公司在促销季需处理20TB日志,因未使用GPT导致磁盘无法识别,损失3小时黄金销售时间! --- ### 🛠️ 二、 实战四步:添加并配置>2TB磁盘 #### 步骤1:在AWS控制台创建并挂载EBS卷 1. **创建卷关键参数** ```yaml 类型: gp3 (性价比首选) 大小: >2048 GiB # 例如3000, 4096等 可用区: 必须目标EC2相同! # 跨AZ会失败 加密: 建议启用 (KMS密钥) 标签: Name=prod-mysql-data-4tb ``` 2. **挂载设备命名规范** | Linux设备名 | 实例内部识别 | 推荐场景 | |-------------|--------------|------------------| | /dev/sdf | /dev/xvdf | 传统实例 | | /dev/nvme1n1| /dev/nvme1n1 | 新一代Nitro实例 | **⚠️ 警告**:绝对避免使用 `/dev/sda1` 等根卷设备名! #### 步骤2创建GPT分区表(核心操作) ```bash # 1. 识别新磁盘 (确认无挂载点!) $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:1 0 4T 0 disk # ← 这就是新磁盘! # 2. 使用parted创建GPT $ sudo parted /dev/nvme1n1 (parted) mklabel gpt # 创建GPT分区(parted) mkpart primary 0% 100% # 使用全部空间 (parted) print # 验证分区 Model: Amazon EC2 NVMe Device (nvme) Disk /dev/nvme1n1: 4295GB Partition Table: gpt # 必须显示gpt Number Start End Size File system Name Flags 1 1049kB 4295GB 4295GB xfs primary (parted) quit ``` #### 步骤3:格式挂载 ```bash # 1. 创建XFS文件系统(推荐大磁盘) $ sudo mkfs.xfs /dev/nvme1n1p1 # 注意分区号p1! # 2. 创建挂载目录 $ sudo mkdir /data # 3. 临时挂载 $ sudo mount /dev/nvme1n1p1 /data # 4. 永久挂载(编辑fstab) $ echo "/dev/nvme1n1p1 /data xfs defaults,noatime 0 0" | sudo tee -a /etc/fstab # 5. 必须验证配置! $ sudo mount -a # 无报错才算成功 ``` #### 步骤4:容量验证优化 ```bash # 查看磁盘使用 $ df -hT /data Filesystem Type Size Used Avail Use% Mounted on /dev/nvme1n1p1 xfs 4.0T 0 4.0T 0% /data # 启用TRIM(SSD必备优化) $ sudo fstrim -v /data /data: 4 TiB trimmed ``` --- ### ⚠️ 三、 五大避坑指南(血泪经验总结) 1. **分区表陷阱** **错误表现**:`mkfs` 时报错"size too large" **解决方案**:必须用 `parted` 而非 `fdisk`,后者不支持GPT 2. **设备名混淆灾难** ```bash # 危险操作!误格式化根磁盘 sudo mkfs.xfs /dev/nvme0n1 # 这是系统盘! ``` **防护措施**: - 执行前用 `lsblk` 三遍确认 - AWS控制台给磁盘打标签 3. **fstab配置错误导致系统崩溃** **救命命令**: ```bash # 启动时按e进入紧急模式 mount -o remount,rw / nano /etc/fstab # 修复错误行 ``` 4. **Windows系统特殊处理** - 在磁盘管理中必须选 **GPT(GUID分区表)** - 驱动器路径建议用 **D:\Data** 而非盘符 5. **性能成本平衡** | 卷类型 | 4TB月成本 | 最大IOPS | 适用场景 | |--------|------------|----------|----------------| | gp3 | $160 | 16000 | 通用型 (推荐) | | io2 | $480 | 64000 | 高性能数据库 | | st1 | $120 | 500 | 流式数据处理 | --- ### 🚀 四、 高级技巧:动态扩容GPT磁盘 **场景**:将4TB卷扩容到6TB ```mermaid sequenceDiagram AWS控制台->>EBS卷: 修改大小(4TB→6TB) EC2实例->>内核: sudo partprobe /dev/nvme1n1 EC2实例->>分区: sudo growpart /dev/nvme1n1 1 EC2实例->>文件系统: sudo xfs_growfs /data ``` **完整命令**: ```bash # 1. AWS控制台修改EBS大小 # 2. 在实例中执行: sudo growpart /dev/nvme1n1 1 # 扩展分区1 sudo xfs_growfs /data # XFS扩容 # ext4用户用: sudo resize2fs /dev/nvme1n1p1 ``` --- ### 💎 结语 掌握GPT分区技术是使用大容量云磁盘的**必备技能**。本文从原理到实践,从基础操作到灾难恢复,助你彻底征服EC2海量存储。现在就开始行动,为您的大数据应用打造坚实的存储底座! > **最后挑战**: > 在评论区分享您遇到过的最大磁盘配置案例! > 👇 是配置16TB数据库卷?还是构建过PB级存储集群? --- **标签**: #AWS运维实战 #云存储解决方案 #Linux系统管理 #DevOps技巧 #云计算架构
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值