文档中心 > 扩展Linux数据盘分区和文件系统
扩展Linux数据盘分区和文件系统

最近更新时间:2022-02-09

对于Linux操作系统,在控制台扩容数据盘后,需要将扩容部分的容量划分至原有分区内,或者为扩容部分的云硬盘分配新的分区。本文以CentOS 7.5 64位操作系统为例进行介绍。

扩容容量划分至原有分区(MBR)

本示例以数据盘“/dev/vdb”原有容量20GB,有1个分区“/dev/vdb1”为例,将数据盘容量扩大至40GB,将新增的20GB划分至已有的MBR分区“/dev/vdb1”内。


说明:

扩容后的新增存储空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支持将新增容量划分至排在末尾的分区。



操作步骤

  1. 登录Linux实例

  2. 运行如下命令,查看磁盘的分区信息。

    fdisk -l

    回显信息如下:

    请记录待扩大分区的起始磁柱值(Start)和截止磁柱值(End),后续重新划分时需要用到。本示例中待扩大分区“/dev/vdb1”的起始磁柱值为2048,截止磁柱值为41943039。

  3. 执行以下命令,卸载磁盘分区。

    umount [磁盘分区]

    本示例中,磁盘分区为“/dev/vdb1”:

    umount /dev/vdb1

  4. 执行以下命令,进入fdisk分区工具。

    fdisk [磁盘]

    本示例中,磁盘为/dev/vdb:

    fdisk /dev/vdb

    回显信息如下:

  5. 输入“d”,按“Enter”,删除磁盘分区。

    回显信息如下:

    由于只有一个磁盘分区,因此直接删除了“/dev/vdb1”。如果有多个分区,需要输入“Partition number”,即分区的编号。

  6. 输入“n”,按“Enter”,开始新建分区。

    回显信息如下:

    磁盘有两种分区类型:

    • "p”表示主分区。

    • "e”表示扩展分区。

  7. 以创建一个主分区为例,输入“p”,按“Enter”,开始创建一个主分区。

  8. 输入Partition number值。

    “Partition number”表示主分区编号,此处需要与原分区编号一致,输入编号“1”,按“Enter”。

  9. 输入First sector值。

    “First sector”表示初始磁柱区域,此处默认为待扩容分区“/dev/vdb1”的初始磁柱值,这里的缺省值即为步骤1中记录的初始磁柱值2048,可以不用输入,直接按“Enter”。输出如下回显信息:

  10. 输入Last sector值。

    “Last sector”表示截止磁柱区域,此处默认为待扩容分区“/dev/vdb1”的截止磁柱值,使用缺省值即可,按“Enter”。

    回显信息如下,表示分区完成。



    说明:

    为保证原分区中的数据不丢失,请务必保证起始磁柱值与原分区的起始磁柱值一致,且截止磁柱值必须大于或等于原分区的磁柱值。



  11. 输入“p”,按“Enter”,查看新建分区的详细信息。

    输出如下回显信息,可以查看到分区“/dev/vdb1”的容量已扩大。

  12. 输入“w”,按“Enter”,将分区结果写入分区表中。

    输出如下回显信息,表示分区创建完成。

  13. 运行如下命令,将新的分区表同步至操作系统,内核重新读取。

    kpartx –af [新增数据盘]

    以新挂载的数据盘“/dev/vdb”为例:

    kpartx –af /dev/vdb

  14. 运行如下命令,检查磁盘分区文件系统的正确性。

    e2fsck -f [磁盘分区]

    本示例中,使用磁盘分区/dev/vdb1:

    e2fsck -f /dev/vdb1

    回显信息如下,表示磁盘工作正常:

  15. 以文件系统为ext*为例,执行以下命令,扩展磁盘分区文件系统的大小。

    resize2fs [磁盘分区]

    本示例中,磁盘分区为“/dev/vdb1”:

    resize2fs /dev/vdb1

    回显信息如下:

  16. (可选)运行如下命令,创建挂载点。

    如果需要将新建分区挂载到新的挂载点上,需要执行此步骤。

    mkdir [挂载点]

    例如,创建挂载点“/guazai1”:

    mkdir /guazai1

  17. 运行如下命令,将新建分区挂载至创建的挂载点。

    mount [新建分区] [挂载点]

    本示例中,将新建分区“/dev/vdb1”挂载至挂载点“/guazai”:

    mount /dev/vdb1 /guazai

  18. 执行以下命令,查看挂载结果。

    df -TH

    回显信息如下,挂载成功。



    明:

    手动挂载硬盘后,每次重启系统都需要重新挂载。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自动挂载,参考步骤“开机自动挂载磁盘分区”。



扩容容量划分至原有分区(GPT)

本示例以数据盘“/dev/vdb”原有容量4TB,有1个分区“/dev/vdb1”为例,将数据盘容量扩大至5TB,将新增的1TB划分至已有的GPT分区内“/dev/vdb1”内。


说明:

扩容后的新增存储空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支持将新增容量划分至排在末尾的分区。



操作步骤

  1. 登录Linux实例

  2. 运行如下命令,查看当前磁盘分区情况。

    lsblk

    回显如下信息,磁盘“/dev/vdb”的容量显示,扩容的容量已经包含在容量总和中。

  3. 执行以下命令,卸载磁盘分区。

    umount [磁盘分区]

    本示例中,磁盘分区为“/dev/vdb1”:

    umount /dev/vdb1

    回显信息如下:

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

    parted [磁盘]

    本示例中,磁盘为/dev/vdb:

    parted /dev/vdb

    回显信息如下:

  5. 输入“unit s”,按“Enter”,设置磁盘的计量单位为磁柱。

  6. 输入“p”,按“Enter”,查看新建分区的详细信息。

    回显信息如下,表示新建分区/dev/vdb1的详细信息。

    回显信息中出现如下Error提示和Waring时,请输入Fix。

    请记录待扩大分区的起始磁柱值(Start)和截止磁柱值(End),后续重新划分时需要用到。本示例中待扩大分区“/dev/vdb1”的起始磁柱值为2048,截止磁柱值为8589932543。

  7. 输入“rm”和分区编号1,按“Enter”,删除原有分区。

    回显信息如下:

  8. 重新划分分区,执行以下命令,按“Enter”。

    mkpart 磁盘分区名称 起始磁柱值 截止磁柱值

    命令示例:

    mkpart data 2048s 100%

    • 起始磁柱值需要和原分区(本例中为dev/vdb1)的取值保持一致,输入步骤5中记录的起始磁柱值“2048s”。

    • 截止磁柱值必须大于原分区(本例中为dev/vdb1)的取值,即大于步骤5中记录的截止磁柱值“8589932543”,此处以将所有新增容量划分至分区“dev/vdb1”为例,输入100%。

  9. 输入“p”,按“Enter”,查看分区信息。

    回显信息如下:

  10. 输入“q”,按“Enter”,退出parted分区工具。

    回显类似如下信息:

    输出的提示信息为建议更新“/etc/fstab”文件,以设置开机自动挂载。您可以在设置完文件系统和挂载目录后再进行。

  11. 运行如下命令,检查磁盘分区文件系统的正确性。

    e2fsck -f [磁盘分区]

    例如,本示例中磁盘分区为/dev/vdb1:

    e2fsck -f /dev/vdb1

    回显信息如下,表示磁盘工作正常:

  12. 扩展磁盘分区文件系统的大小。以文件系统为ext*为例,运行如下命令。

    resize2fs [磁盘分区]

    本示例中,磁盘分区为“/dev/vdb1”:

    resize2fs /dev/vdb1

    回显信息如下,表示扩展完成,可以看到扩展后的文件系统大小已修改。

  13. (可选)运行如下命令,创建挂载点。

    如果需要将新建分区挂载到新的挂载点上,需要执行此步骤。如果需要挂载到已有挂载点,则请跳过此步骤。

    mkdir [挂载点]

    例如,创建挂载点“/guazai1”:

    mkdir /guazai1

  14. 运行如下命令,将新建分区挂载至创建的挂载点。

    mount [新建分区] [挂载点]

    本示例中,将新建分区“/dev/vdb1”挂载至挂载点“/guazai”:

    mount /dev/vdb1 /guazai

  15. 执行以下命令,查看挂载结果。

    df -TH

    回显信息如下:



    说明:

    手动挂载硬盘后,每次重启系统都需要重新挂载。您可以修改“/etc/fstab”文件,将新建磁盘分区设置为开机自动挂载,参考步骤“开机自动挂载磁盘分区”。



扩容容量格式化为新分区(MBR)

将扩容部分的容量格式化为新的分区,相当于在原有磁盘中新建一个分区。

例如,磁盘/dev/vdb中存在一个20GB的分区“/dev/vdb1”,此时将数据盘扩容至50GB,扩容的30GB容量需要划分到新建分区“/dev/vdb2”中,您可以参考考“初始化Linux数据盘(小于2TB)”,新建分区“/dev/vdb2”并格式化文件系统、挂载分区至云主机实例。

扩容容量格式化为新分区(GPT)

将扩容部分的容量格式化为新的分区,相当于在原有磁盘中新建一个分区。

例如,磁盘/dev/vdb中存在一个3TB的分区“/dev/vdb1”,此时将数据盘扩容至5TB,扩容的2TB容量需要划分到新建分区“/dev/vdb2”中,您可以参考考“初始化Linux数据盘(大于等于2TB)”,新建分区“/dev/vdb2”并格式化文件系统、挂载分区至云主机实例。