tencent cloud

文档反馈

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

最后更新时间:2021-11-10 14:32:31

    操作场景

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

    前提条件

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

    • 已确认扩容分区格式,详情请参考 确认扩展方式
    • 文件系统是 EXT2/EXT3/EXT4/XFS。
    • 当前文件系统不能有错误。
    • 扩容后的磁盘大小不超过2TB。
    • 文档中使用的扩容工具仅支持 Python 2 版本,不支持 Python 3 版本。

    操作步骤

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

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

    lsblk
    
    • 返回信息如下图所示,则说明仅具备1个分区。您可使用工具进行自动扩容,详情请参见 使用工具扩容
    • 返回信息如下图所示,则说明已具备 vdb1vdb2 两个分区。如果您具备2个或以上分区时,请参考 手动扩容 选择分区进行扩容。

    使用工具扩容的方式支持仅1个分区的场景。若存在2个及以上分区,请使用 手动扩容 方式。

    1. 以 root 用户执行以下命令,卸载分区。
      umount <挂载点>
      本文挂载点以 /data 为例,则执行:
      umount /data
      
    2. 执行以下命令,下载工具。
      wget -O /tmp/devresize.py https://raw.githubusercontent.com/tencentyun/tencentcloud-cbs-tools/master/devresize/devresize.py
      
    3. 执行以下命令,使用扩容工具进行扩容。
      python /tmp/devresize.py <硬盘路径>
      
      本文以硬盘路径以 /dev/vdb ,文件系统在 vdb1 上为例,则执行:
      python /tmp/devresize.py /dev/vdb
      
      • 若输出 The filesystem on /dev/vdb1 is now XXXXX blocks long. 如下图所示,则表示扩容成功,请执行 步骤4
      • 若输出 [ERROR] - e2fsck failed!!,请执行以下步骤:
        a. 执行以下命令,修复文件系统所在分区。
        fsck -a <分区路径>
        本文以硬盘路径是/dev/vdb且文件系统在 vdb1 上为例,则执行:
        fsck -a /dev/vdb1
        
        b. 修复成功后,再次执行以下命令,使用扩容工具进行扩容。

    python /tmp/devresize.py /dev/vdb
    

    4. 执行以下命令,手动挂载扩容后的分区,本文以挂载点以 /data 为例。
    mount <分区路径> <挂载点>
    
    若扩容前已有分区且以分区路径以 /dev/vdb1 为例,则执行:
    mount /dev/vdb1 /data
    

    5. 执行以下命令,查看扩容后的分区容量。
    df -h
    ​
    若返回类似如下图所示的信息,说明挂载成功,即可查看到数据盘:

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

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

    1. 以 root 用户执行以下命令,查看已挂载的数据盘分区信息。
      df -h
      
      已挂载数据盘分区为20GB。如下图所示:
    2. 执行以下命令,查看数据盘扩容后未分区的信息。
      fdisk -l
      
      数据盘已扩容至30GB。如下图所示:
    3. 执行以下命令,解挂所有已挂载的分区。
      umount <挂载点>
      
      本文以挂载点以 /data 为例,则执行:
      umount /data
      
      说明:

      请将云硬盘上所有分区都解挂后,再执行 步骤4

    4. 执行以下命令,新建一个新分区。
      fdisk <硬盘路径>
      
      本文以磁盘路径以 /dev/vdb 为例,则执行:
      fdisk /dev/vdb
      
      按照界面的提示,依次执行以下步骤:
      1. 输入 p:查看现有分区信息,本文已有分区 /dev/vdb1
      2. 输入 n:新建分区。
      3. 输入 p:新建主分区。
      4. 输入 2:新建第2个主分区。
      5. 按2次 Enter:分区大小使用默认配置。
      6. 输入 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/vdb1 /data2
      
    9. 执行以下命令,查看新分区信息。
      df -h
      
      返回如下图所示信息则说明挂载成功,即可以查看到数据盘:
      说明:

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

    10. 执行以下命令,添加信息。
      echo '/dev/vdb2 /data1 ext4 defaults 0 0' >> /etc/fstab
      
    11. 执行以下命令,查看信息。
      cat /etc/fstab
      
      若返回如下图所示信息,则表示添加分区信息成功。

    相关文档

    扩展分区及文件系统(Windows)

    常见问题

    如果您在使用云硬盘过程中遇到问题,可参考以下文档并结合实际情况分析并解决问题:

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持