云服务器使用指南
存储管理
扩容云盘
扩展分区及文件系统(Linux)
离线扩展云盘分区及文件系统
离线扩展 GPT 分区及文件系统(大于2TB)

离线扩展 GPT 分区及文件系统(大于2TB)

智算云技术支持 – 发表于:2023年08月31日 08:30:30

当您的云盘在已有 GPT 分区并已创建文件系统的情况下,可根据实际情况,通过以下两种方式扩展分区及文件系统:

1、将扩容部分的容量划分至原有 GPT 分区;

2、将扩容部分的容量格式化成独立的 GPT 分区

一、前提条件

将新扩容的云盘空间添加到已有的文件系统中,扩容能够成功必须满足以下条件:

1、已确认扩容分区格式,详情请参见 确认离线扩展分区方式

2、文件系统是 EXT 或 XFS。

3、当前文件系统不能有错误。

二、将扩容部分的容量划分至原有 GPT 分区

1. 以 root 用户执行以下命令,确认云盘的容量变化。

 
parted <磁盘路> print
 

本文磁盘路径以 /dev/vdc 为例,则执行:

 
parted /dev/vdc print
 

若在过程中提示如下图所示信息,请输入 Fix。如下图所示:

扩容后的云盘大小为2040GB,已有分区的大小为10.7GB。如下图所示:

2. 执行以下命令,查看该云盘是否有已挂载分区。

 
mount | grep <磁盘路>
 

本文磁盘路径以 /dev/vdc 为例,则执行:

 
mount | grep '/dev/vdc'
 
  • 返回结果如下,则说明云盘上有一个分区(vdc1)挂载在 /data 上。

执行以下命令,将云盘上的所有分区都解挂。

 
umount <挂载>
 

本文挂载点以 /data 为例,则执行:

 
umount /data
 
  • 返回结果如下所示,则无已挂载分区,请执行下一步。

3. 执行以下命令,进入 parted 分区工具。

 
parted <磁盘路>
 

本文磁盘路径以 /dev/vdc 为例,则执行:

 
parted /dev/vdc
 

4. 执行以下命令,将显示和操纵单位变成 sector(默认为GB)。

 
unit s
 

5. 执行以下命令,查看分区信息,并记录已有分区的 Start 值。

 
print
 

说明:请务必记录 Start 值。删除分区并新建后,Start 值必须保持不变,否则将会引起数据丢失。

6. 执行以下命令,删除原有分区。

 
rm <分区 Number>
 

由上图可知云盘上有一个分区,Number 为“1”,则执行:

 
rm 1
 

7. 执行以下命令,确定分区已删除,回显信息如下图所示。

 
print
 

说明:如果误删分区,可立即执行 rescue 命令,并根据提示输入 Start、End 值确认恢复分区。

8. 执行以下命令,新建一个主分区。

 
mkpart primary <原分区起始扇> 100%
 

100%表示此分区到磁盘的最末尾,且由以上步骤可得 Start 值,请根据您的实际情况填写。本文中原分区删除前扇区由2048s开始,则 Start 值为2048,执行:

 
mkpart primary 2048s 100%
 

如果出现如下图所示的状态,请输入Ignore。

9. 执行以下命令,查看新分区是否已创建成功。

 
print
 

返回结果如下图所示,即表示新分区已创建成功。

10. 执行以下命令,退出 parted 工具。

 
quit
 

11. 执行以下命令,将新的分区表变更同步至操作系统。

 
partprobe
 

12. 执行以下命令,确认云盘的文件系统类型。

 
df -ihT
 
  • 返回结果如下图所示,则文件系统类型为 EXT。

  • 返回结果如下图所示,则文件系统类型为 XFS。

13. 根据云盘文件系统的类型,执行不同的命令进行扩容。

  • 扩容 EXT 文件系统

执行以下命令,检查扩容后的分区。

 
e2fsck -f <分区路>
 

本文以新建分区是(即分区路径是/dev/vdc1)为例,则执行:

 
e2fsck -f /dev/vdc1
 

执行以下命令扩容 EXT 文件系统(以 /dev/vdc1 为例)。

 
resize2fs /dev/vdc1
 

扩容成功则如下图所示:

执行以下命令,手动挂载扩容后的分区,本文以挂载点以 /data 为例。

 
mount <分区路> <挂载>
 

若扩容前已有分区且以分区路径以 /dev/vdc1 为例,则执行:

 
mount /dev/vdc1 /data
 
  • 扩容 XFS 文件系统

执行以下命令,手动挂载新分区。

 
mount <分区路> <挂载>
 

本文分区路径以/dev/vdc1,挂载点 /data 为例,则执行:

 
mount /dev/vdc1 /data
 

执行以下命令扩容 XFS 文件系统(以 /dev/vdc1 为例)。

 
xfs_growfs /dev/vdc1
 

14. 执行以下命令,查看新分区。

 
df -h
 

返回如下图信息说明挂载成功,即可以查看到数据盘。

三、将扩容部分的容量格式化成独立的 GPT 分区

1. 以 root 用户执行以下命令, 确认云盘的容量变化。

 
parted <磁盘路> print
 

本文磁盘路径以/dev/vdc为例,则执行:

 
parted /dev/vdc print
 

若在过程中提示如下图所示信息,请输入 Fix。

扩容后的云盘大小为2147GB,已有分区的大小为2040GB。如下图所示:

2. 执行以下命令,查看该云盘是否有已挂载分区。

 
mount | grep <磁盘路>
 

本文磁盘路径以 /dev/vdc 为例,则执行:

 
mount | grep '/dev/vdc'
 
  • 返回结果如下,则说明云盘上有一个分区(vdc1)挂载在 /data 上。

执行以下命令,将云盘上的所有分区都解挂。

 
umount <挂载>
 

本文挂载点以 /data 为例,则执行:

 
umount /data
 
  • 返回结果如下所示,则无已挂载分区,请执行下一步。

3. 执行以下命令,进入 parted 分区工具。

 
parted <磁盘路>
 

本文磁盘路径以 /dev/vdc 为例,则执行:

 
parted '/dev/vdc'
 

4. 执行以下命令,查看分区信息,并记录已有分区的 End 值,以此值作为下一个分区的起始偏移值。

 
print
 

5. 执行以下命令,新建一个主分区。此分区将从已有分区的末尾开始,覆盖硬盘所有的新增空间。

 
mkpart primary start end
 

由以上步骤可得 End 值,请您根据实际情况填写。本文中 End 值为2040GB, 则执行:

 
mkpart primary 2040GB 100%
 

6. 执行以下命令,查看新分区是否已创建成功。

 
print
 

输出结果如下,则已成功新建分区:

7. 执行以下命令,退出 parted 工具。

 
quit
 

8. 执行以下命令,格式化新建的分区。您可以自行选择文件系统的格式,例如 EXT2、EXT3 等。

 
mkfs.<fstype> <分区路>
 

本文以 EXT4 为例,则执行:

 
mkfs.ext4 /dev/vdc2
 

9. 执行以下命令,手动挂载新分区。

 
mount <分区路> <挂载>
 

本文分区路径以 /dev/vdc2,挂载点 /data 为例,则执行:

 
mount /dev/vdc2 /data
 

10. 执行以下命令,查看新分区。

 
df -h
 

返回如下图信息说明挂载成功,即可以查看到数据盘。