GUID partition table, GPT 磁盘分区表(在Linux中添加一块大于 2TB 的新磁盘)

因为过去一个扇区大小就是 512bytes 而已,不过目前已经有 4K 的扇区设计出现!为了兼容于所有的磁盘,因此在扇区的定义上面, 大多会使用所谓的逻辑区块地址(Logical Block Address, LBA)来处理。GPT 将磁盘所有区块以此 LBA(预设为 512bytes 喔!) 来规划,而第一个 LBA 称为 LBA0 (从 0 开始编号)。


与 MBR 仅使用第一个 512bytes 区块来纪录不同, GPT 使用了 34 个 LBA 区块来纪录分割信息!同时与过去 MBR 仅有一的区块,被干掉就死光光的情况不同, GPT 除了前面 34 个 LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份!这样或许会比较安全些吧!详细的结构有点像底下的模样:


上述图示的解释说明如下:

LBA0 (MBR 相容区块)

与 MBR 模式相似的,这个兼容区块也分为两个部份,一个就是跟之前 446 bytes 相似的区块,储存了第一阶段的开机管理程序! 而在原本的分割表的纪录区内,这个兼容模式仅放入一个特殊标志的分割,用来表示此磁盘为 GPT 格式之意。而不懂 GPT 分割表的磁盘管理程序, 就不会认识这颗磁盘,除非用户有特别要求要处理这颗磁盘,否则该管理软件不能修改此分割信息,进一步保护了此磁盘喔!

LBA1 (GPT 表头纪录)

这个部份纪录了分割表本身的位置与大小,同时纪录了备份用的 GPT 分割 (就是前面谈到的在最后 34 个 LBA 区块) 放置的位置, 同时放置了分割表的检验机制码 (CRC32),操作系统可以根据这个检验码来判断 GPT 是否正确。若有错误,还可以透过这个纪录区来取得备份的 GPT(磁盘最后的那个备份区块) 来恢复 GPT 的正常运作!

LBA2-33 (实际纪录分割信息处)

从 LBA2 区块开始,每个 LBA 都可以纪录 4 笔分割纪录,所以在默认的情况下,总共可以有 4*32 = 128 笔分割纪录喔!因为每个 LBA 有 512bytes,因此每笔纪录用到 128 bytes 的空间,除了每笔纪录所需要的标识符与相关的纪录之外,GPT 在每笔纪录中分别提供了 64bits 来记载开始/结束的扇区号码,因此,GPT 分割表对于单一分割槽来说, 他的最大容量限制就会在『 264 * 512bytes = 263 * 1Kbytes = 233*TB = 8 ZB 』,要注意 1ZB = 230TB 啦! 你说有没有够大了?

现在 GPT 分割预设可以提供多达 128 笔纪录,而在 Linux 本身的核心装置纪录中,针对单一磁盘来说,虽然过去最多只能到达 15 个分割槽,不过由于 Linux kernel 透过 udev 等方式的处理,现在 Linux 也已经没有这个限制在了! 此外,GPT 分割已经没有所谓的主、延伸、逻辑分割的概念,既然每笔纪录都可以独立存在, 当然每个都可以视为是主分割!每一个分割都可以拿来格式化使用喔!

以上转载来至《鸟哥的Linux私房菜——基础班》


以下是对于GPT的实际应用经验。

你有没有试过使用 fdisk 对大于 2TB 的硬盘进行分区,并且纳闷为什么会得到需要使用 GPT 的警告? 是的,你看到的没错。我们无法使用 fdisk 对大于 2TB 的硬盘进行分区。

在这种情况下,我们可以使用 parted 命令。它的主要区别在于 fdisk 使用 DOS 分区表格式而 parted 使用 GPT 格式。

提示:你可以使用 gdisk 来代替 parted

在本文中,我们将介绍如何将大于 2TB 的新磁盘添加到现有的 Linux 服务器中(如 RHEL/CentOS 或 Debian/Ubuntu)中。

我使用的是 fdisk 和 parted 来进行此配置。

首先使用 fdisk 命令列出当前的分区详细信息,如图所示。

首先使用 fdisk 命令列出当前的分区详细信息,如图所示。

 
 
  1. # fdisk -l

List Linux Partition Table

列出 Linux 分区表

为了本文的目的,我加了一块 20GB 的磁盘,这也可以是大于 2TB 的磁盘。在你加完磁盘后,使用相同的fdisk 命令验证分区表。

 
 
  1. # fdisk -l

List New Partition Table

列出新的分区表

提示:如果你添加了一块物理磁盘,你可能会发现分区已经创建了。此种情况下,你可以在使用 parted 之前使用 fdisk 删除它。

 
 
  1. # fdisk /dev/xvdd

在命令中使用 d 开关删除分区,使用 w 保存更改并退出。

Delete Linux Partition

删除 Linux 分区

重要:在删除分区时你需要小心点。这会擦除磁盘上的数据。

现在是使用 parted 命令分区新的磁盘了。

 
 
  1. # parted /dev/xvdd

将分区表格式化成 GPT

 
 
  1. (parted) mklabel gpt

创建主分区并分配磁盘容量,这里我使用 20GB (在你这里可能是 2TB)。

 
 
  1. (parted) mkpart primary 0GB 20GB

Create Partition using Parted

使用 parted 创建分区

出于好奇,让我们用 fdisk 看看新的分区。

 
 
  1. # fdisk /dev/xvdd

Verify Partition Details

验证分区细节

现在格式化并挂载分区,并在 /etc/fstab 添加相同的信息,它控制在系统启动时挂载文件系统。

 
 
  1. # mkfs.ext4 /dev/xvdd1

Format Linux Partition

格式化 Linux 分区

一旦分区格式化之后,是时候在 /data1 下挂载分区了。

 
 
  1. # mount /dev/xvdd1 /data1

要永久挂载,在 /etc/fstab 添加条目。

 
 
  1. /dev/xvdd1 /data1 ext4 defaults 0 0

重要:要使用 GPT 分区格式需要内核支持。默认上 RHEL/CentOS 的内核已经支持 GPT,但是对于 Debian/Ubuntu,你需要在修改配置之后重新编译内核。

转载地址:LCTT https://linux.cn/article-8398-1.html


个人学习用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统磁盘分区是将物理硬盘划分为多个逻辑存储空间的过程,每个分区都有自己的文件系统和独立的标识,这样可以更好地组织和管理数据。以下是磁盘分区的基本概念和常见步骤: 1. **基本类型**: - **主分区(Primary Partition)**: 主分区是传统意义上的分区,每个硬盘最多只能有四个主分区。 - **扩展分区(Extended Partition)**: 主分区达到限制后,可以通过创建扩展分区添加更多分区,但不能直接在扩展分区下创建主分区,需要先创建逻辑分区。 - **逻辑分区(Logical Partition)**: 可以在扩展分区内部创建,数量不受限。 2. **分区格式化**: 使用fdisk、gparted等工具创建分区后,通常会格式化为某种文件系统,如ext2/3/4、NTFS、FAT32等,以便存储数据。 3. **挂载点和文件系统**: 每个分区都有一个挂载点,用于指定其在Linux文件系统的位置,如/home、/usr、/var等。选择合适的文件系统类型取决于用途,如root分区一般使用ext4,而Windows交换分区可能选择swap。 4. **动态分区和LVM(逻辑卷管理)**: Linux内核支持动态分区和LVM,可以方便地调整分区大小,创建卷组并在其添加逻辑卷,提高磁盘管理灵活性。 5. **RAID(廉价冗余阵列)**: Linux也支持RAID配置,通过多个物理硬盘组成逻辑硬盘,提供数据冗余和性能提升。 6. **分区**: Linux使用MBR(Master Boot Record)或GPTGUID Partition Table)来记录分区信息。MBR适用于小于2TB的硬盘,GPT适用于大容量硬盘并提供更多的分区选项。 相关问题: 1. Linux如何查看和管理磁盘分区? 2. LVM的工作原理是什么? 3. 在Linux上如何创建一个的逻辑分区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值