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

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

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

当您的云盘在已有 MBR 分区并已创建文件系统的情况下,已扩容至小于2TB。则请根据实际情况,通过以下两种方式扩展分区及文件系统:

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

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

一、前提条件

fdisk/e2fsck/resize2fs 自动扩容工具适用于 Linux 操作系统,用于将新扩容的云盘空间添加到已有的文件系统中,扩容能够成功必须满足以下条件:

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

2、文件系统是 EXT2/EXT3/EXT4/XFS。

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

4、扩容后的磁盘大小不超过2TB。

5、文档中使用的扩容工具仅支持 Python 2 版本,不支持 Python 3 版本。

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

1. 以 root 用户执行以下命令,查询云盘的分区信息。

 
lsblk
 

返回信息如下图所示,则说明已具备 vdb1、vdb2 两个分区。

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

  • 扩容 EXT 文件系统

以 root 用户执行以下命令,卸载分区。

 
umount <挂载>
 

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

 
umount /data
 

执行以下命令,使用 growpart 工具扩容分区:

 
growpart /dev/vdb2
 

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

 
e2fsck -f <分区路>
 

本文以新建分区是2(即分区路径是/dev/vdb2

 
e2fsck -f /dev/vdb2
 

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

 
resize2fs /dev/vdb2
 

扩容成功则如下图所示:

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

 
mount <分区路> <挂载>
 

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

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

以 root 用户执行以下命令,卸载分区。。

 
umount <挂载>
 

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

 
umount /data
 

执行以下命令,使用 growpart 工具扩容分区:

 
growpart /dev/vdb2
 

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

 
mount <分区路> <挂载>
 

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

 
mount /dev/vdb2 /data
 

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

 
xfs_growfs /dev/vdb2
 

3. 执行以下命令,查看扩容后的分区容量。

 
df -h
 

若返回类似如下图所示的信息,说明挂载成功,即可查看到数据盘:

4. 执行以下命令,查看扩容后原分区的数据信息,确认新增加的存储空间是否扩容到文件系统中。

 
ll /data
 

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

1. 以 root 用户执行以下命令,查看已挂载的数据盘分区信息。

 
df -h
 

已挂载数据盘分区为20GB。如下图所示:

2. 执行以下命令,查看数据盘扩容后未分区的信息。

 
fdisk -l
 

数据盘已扩容至30GB。如下图所示:

3. 执行以下命令,解挂所有已挂载的分区。

 
umount <挂载>
 

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

说明:请将云盘上所有分区都解挂后,再执行下一步骤。

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

 
fdisk <硬盘路>
 

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

按照界面的提示,依次执行以下步骤:

  • i. 输入 p:查看现有分区信息,本文已有分区 /dev/vdb1。

  • ii. 输入 n:新建分区。

  • iii. 输入 p:新建主分区。

  • iv. 输入 2:新建第2个主分区。

  • v. 按2次 Enter:分区大小使用默认配置。

  • vi. 输入 w:保存分区表,开始分区。

如下图所示:

说明:本文以创建一个分区为例,您可以根据实际需求创建多个分区。

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

 
fdisk -l
 

新的分区 vdb2 已经创建完成。如下图所示:

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

 
mkfs.<fstype> <分区路>
 

本文以 EXT4 为例,则执行:mkfs.ext4 /dev/vdb2

已成功创建 EXT4 文件系统,如下图所示:

7. 执行以下命令,创建新的挂载点。

 
mkdir <新挂载>
 

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

 
mkdir /data1
 

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

 
mount <新分区路> <新挂载>
 

本文以新分区路径 /dev/vdb2,新挂载点 /data1 为例,则执行:

 
mount /dev/vdb2 /data1
 

9. 执行以下命令,查看新分区信息。

 
df -h
 

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

若您希望云服务器在重启或开机时能自动挂载数据盘,则需要执行以下步骤添加新分区信息至/etc/fstab中:

10. 执行以下命令,添加信息。

 
echo '/dev/vdb2 /data1 ext4 defaults 0 0' >> /etc/fstab
 

11. 执行以下命令,查看信息。

 
cat /etc/fstab
 

若返回如下图所示信息,则表示添加分区信息成功。