离线扩展 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
若返回如下图所示信息,则表示添加分区信息成功。