最近更新时间:2022-02-09
对于Linux操作系统,在控制台扩容数据盘后,需要将扩容部分的容量划分至原有分区内,或者为扩容部分的云硬盘分配新的分区。本文以CentOS 7.5 64位操作系统为例进行介绍。
本示例以数据盘“/dev/vdb”原有容量20GB,有1个分区“/dev/vdb1”为例,将数据盘容量扩大至40GB,将新增的20GB划分至已有的MBR分区“/dev/vdb1”内。
说明:
扩容后的新增存储空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支持将新增容量划分至排在末尾的分区。
运行如下命令,查看磁盘的分区信息。
fdisk -l |
回显信息如下:
请记录待扩大分区的起始磁柱值(Start)和截止磁柱值(End),后续重新划分时需要用到。本示例中待扩大分区“/dev/vdb1”的起始磁柱值为2048,截止磁柱值为41943039。
执行以下命令,卸载磁盘分区。
umount [磁盘分区] |
本示例中,磁盘分区为“/dev/vdb1”:
umount /dev/vdb1 |
执行以下命令,进入fdisk分区工具。
fdisk [磁盘] |
本示例中,磁盘为/dev/vdb:
fdisk /dev/vdb |
回显信息如下:
输入“d”,按“Enter”,删除磁盘分区。
回显信息如下:
由于只有一个磁盘分区,因此直接删除了“/dev/vdb1”。如果有多个分区,需要输入“Partition number”,即分区的编号。
输入“n”,按“Enter”,开始新建分区。
回显信息如下:
磁盘有两种分区类型:
"p”表示主分区。
"e”表示扩展分区。
以创建一个主分区为例,输入“p”,按“Enter”,开始创建一个主分区。
输入Partition number值。
“Partition number”表示主分区编号,此处需要与原分区编号一致,输入编号“1”,按“Enter”。
输入First sector值。
“First sector”表示初始磁柱区域,此处默认为待扩容分区“/dev/vdb1”的初始磁柱值,这里的缺省值即为步骤1中记录的初始磁柱值2048,可以不用输入,直接按“Enter”。输出如下回显信息:
输入Last sector值。
“Last sector”表示截止磁柱区域,此处默认为待扩容分区“/dev/vdb1”的截止磁柱值,使用缺省值即可,按“Enter”。
回显信息如下,表示分区完成。
说明:
为保证原分区中的数据不丢失,请务必保证起始磁柱值与原分区的起始磁柱值一致,且截止磁柱值必须大于或等于原分区的磁柱值。
输入“p”,按“Enter”,查看新建分区的详细信息。
输出如下回显信息,可以查看到分区“/dev/vdb1”的容量已扩大。
输入“w”,按“Enter”,将分区结果写入分区表中。
输出如下回显信息,表示分区创建完成。
运行如下命令,将新的分区表同步至操作系统,内核重新读取。
kpartx –af [新增数据盘] |
以新挂载的数据盘“/dev/vdb”为例:
kpartx –af /dev/vdb |
运行如下命令,检查磁盘分区文件系统的正确性。
e2fsck -f [磁盘分区] |
本示例中,使用磁盘分区/dev/vdb1:
e2fsck -f /dev/vdb1 |
回显信息如下,表示磁盘工作正常:
以文件系统为ext*为例,执行以下命令,扩展磁盘分区文件系统的大小。
resize2fs [磁盘分区] |
本示例中,磁盘分区为“/dev/vdb1”:
resize2fs /dev/vdb1 |
回显信息如下:
(可选)运行如下命令,创建挂载点。
如果需要将新建分区挂载到新的挂载点上,需要执行此步骤。
mkdir [挂载点] |
例如,创建挂载点“/guazai1”:
mkdir /guazai1 |
运行如下命令,将新建分区挂载至创建的挂载点。
mount [新建分区] [挂载点] |
本示例中,将新建分区“/dev/vdb1”挂载至挂载点“/guazai”:
mount /dev/vdb1 /guazai |
执行以下命令,查看挂载结果。
df -TH |
回显信息如下,挂载成功。
说明:
手动挂载硬盘后,每次重启系统都需要重新挂载。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自动挂载,参考步骤“开机自动挂载磁盘分区”。
本示例以数据盘“/dev/vdb”原有容量4TB,有1个分区“/dev/vdb1”为例,将数据盘容量扩大至5TB,将新增的1TB划分至已有的GPT分区内“/dev/vdb1”内。
说明:
扩容后的新增存储空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支持将新增容量划分至排在末尾的分区。
运行如下命令,查看当前磁盘分区情况。
lsblk |
回显如下信息,磁盘“/dev/vdb”的容量显示,扩容的容量已经包含在容量总和中。
执行以下命令,卸载磁盘分区。
umount [磁盘分区] |
本示例中,磁盘分区为“/dev/vdb1”:
umount /dev/vdb1 |
回显信息如下:
执行以下命令,进入parted分区工具。
parted [磁盘] |
本示例中,磁盘为/dev/vdb:
parted /dev/vdb |
回显信息如下:
输入“unit s”,按“Enter”,设置磁盘的计量单位为磁柱。
输入“p”,按“Enter”,查看新建分区的详细信息。
回显信息如下,表示新建分区/dev/vdb1的详细信息。
回显信息中出现如下Error提示和Waring时,请输入Fix。
请记录待扩大分区的起始磁柱值(Start)和截止磁柱值(End),后续重新划分时需要用到。本示例中待扩大分区“/dev/vdb1”的起始磁柱值为2048,截止磁柱值为8589932543。
输入“rm”和分区编号1,按“Enter”,删除原有分区。
回显信息如下:
重新划分分区,执行以下命令,按“Enter”。
mkpart 磁盘分区名称 起始磁柱值 截止磁柱值 |
命令示例:
mkpart data 2048s 100% |
起始磁柱值需要和原分区(本例中为dev/vdb1)的取值保持一致,输入步骤5中记录的起始磁柱值“2048s”。
截止磁柱值必须大于原分区(本例中为dev/vdb1)的取值,即大于步骤5中记录的截止磁柱值“8589932543”,此处以将所有新增容量划分至分区“dev/vdb1”为例,输入100%。
输入“p”,按“Enter”,查看分区信息。
回显信息如下:
输入“q”,按“Enter”,退出parted分区工具。
回显类似如下信息:
输出的提示信息为建议更新“/etc/fstab”文件,以设置开机自动挂载。您可以在设置完文件系统和挂载目录后再进行。
运行如下命令,检查磁盘分区文件系统的正确性。
e2fsck -f [磁盘分区] |
例如,本示例中磁盘分区为/dev/vdb1:
e2fsck -f /dev/vdb1 |
回显信息如下,表示磁盘工作正常:
扩展磁盘分区文件系统的大小。以文件系统为ext*为例,运行如下命令。
resize2fs [磁盘分区] |
本示例中,磁盘分区为“/dev/vdb1”:
resize2fs /dev/vdb1 |
回显信息如下,表示扩展完成,可以看到扩展后的文件系统大小已修改。
(可选)运行如下命令,创建挂载点。
如果需要将新建分区挂载到新的挂载点上,需要执行此步骤。如果需要挂载到已有挂载点,则请跳过此步骤。
mkdir [挂载点] |
例如,创建挂载点“/guazai1”:
mkdir /guazai1 |
运行如下命令,将新建分区挂载至创建的挂载点。
mount [新建分区] [挂载点] |
本示例中,将新建分区“/dev/vdb1”挂载至挂载点“/guazai”:
mount /dev/vdb1 /guazai |
执行以下命令,查看挂载结果。
df -TH |
回显信息如下:
说明:
手动挂载硬盘后,每次重启系统都需要重新挂载。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自动挂载,参考步骤“开机自动挂载磁盘分区”。
将扩容部分的容量格式化为新的分区,相当于在原有磁盘中新建一个分区。
例如,磁盘/dev/vdb中存在一个20GB的分区“/dev/vdb1”,此时将数据盘扩容至50GB,扩容的30GB容量需要划分到新建分区“/dev/vdb2”中,您可以参考考“初始化Linux数据盘(小于2TB)”,新建分区“/dev/vdb2”并格式化文件系统、挂载分区至云主机实例。
将扩容部分的容量格式化为新的分区,相当于在原有磁盘中新建一个分区。
例如,磁盘/dev/vdb中存在一个3TB的分区“/dev/vdb1”,此时将数据盘扩容至5TB,扩容的2TB容量需要划分到新建分区“/dev/vdb2”中,您可以参考考“初始化Linux数据盘(大于等于2TB)”,新建分区“/dev/vdb2”并格式化文件系统、挂载分区至云主机实例。