文档首页 > > 常见问题> 磁盘管理> 磁盘分区与虚拟内存类> 怎样调整系统盘分区?

怎样调整系统盘分区?

分享
更新时间: 2020/04/22 GMT+08:00

操作场景

弹性云服务器创建成功后,如果发现系统盘分区的容量大小和实际创建的系统盘大小不一致,可以通过手动调整系统盘分区,扩容系统盘的空白空间。

扩容的方法有如下两种:

  • 将空白分区划分成新分区,并将新分区格式化后挂载到root根分区的某个目录下。具体方法请参见本节内容。
  • 将扩容的空白分区直接扩容到根分区。具体方法请参见FAQ:
    • 如何将扩容系统盘的空白分区在线扩容到末尾的root分区?
    • 如何将扩容系统盘的空白分区在线扩容到非末尾的root分区?

操作步骤

以镜像为CentOS 7.3 64bit的弹性云服务器为例,用户在创建弹性云服务器时,创建了容量为60GB的系统盘,但是查询系统盘分区后,显示的容量大小仅为40GB。

为使用增加的20GB容量,需调整系统盘分区,具体操作如下:

  1. 查看磁盘分区。

    1. 以root用户登录Linux弹性云服务器。
    2. 执行以下命令,查看云服务器的磁盘详情。

      fdisk -l

      回显类似如下,其中,“/dev/xvda”或“/dev/vda”表示系统盘。

      图1 查看磁盘详情
    3. 执行以下命令,查看磁盘分区。

      parted -l /dev/xvda

      图2 查看磁盘分区

  2. 将系统盘扩容后的空间划分为一个新的分区。

    1. 执行以下命令,进入fdisk模式。以“/dev/xvda”为例:

      fdisk /dev/xvda

      回显类似如下:

      [root@ecs-8d6c ]# fdisk /dev/xvda
      Welcome to fdisk (util-linux 2.23.2).
      
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      Command (m for help):
    2. 输入“n”,按“Enter”,开始新建分区。

      本例中由于系统盘原来已经有2个分区,所以系统自动添加第3个分区。

      回显类似如下:

      图3 新建分区
    3. 输入新分区的起始磁柱编号,按“Enter”。

      其中,起始磁柱编号必须大于原有分区的结束磁柱编号。本例中我们设置新分区的起始磁柱编号为默认值,直接按“Enter”,则回显类似如下:

      图4 输入新分区的起始磁柱编号
    4. 输入新分区的结束磁柱编号,按“Enter”。

      本例中我们设置新分区的结束磁柱编号为默认值,直接按“Enter”,则回显类似如下:

      图5 输入新分区的结束磁柱编号
    5. 输入“p”,按“Enter”,查看新建分区。

      回显类似如下:

      图6 查看新建分区
    6. 输入“w”,按“Enter”,保存并退出分区信息。

      系统会自动将分区结果写入分区表中,完成分区创建。

      回显类似如下:

      图7 完成分区创建
    7. 执行以下命令,查看磁盘分区。

      parted -l /dev/xvda

      图8 查看新的磁盘分区

  3. 执行以下命令,将分区表的变更同步至操作系统。

    partprobe

  4. 执行以下命令,设置新建分区文件系统的格式。

    1. 执行以下命令,查看文件系统的格式。

      df -TH

      图9 查看文件系统的格式
    2. 以“ext4” 文件格式为例,命令行如下:

      mkfs -t ext4 /dev/xvda3

      格式化需要等待一段时间,请观察系统运行状态,不要退出。

      回显类似如下:

      [root@ecs-86dc ]# mkfs -t ext4 /dev/xvda3
      mke2fs 1.42.9 (28-Dec-2013)
      Filesystem label=
      OS type: Linux
      Block size=4096 (log=2)
      Fragment size=4096 (log=2)
      Stride=0 blocks, Stripe width=0 blocks
      1790544 inodes, 7156992 blocks
      357849 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=2155872256
      219 block groups
      32768 blocks per group, 32768 fragments per group
      8176 inodes per group
      Superblock backups stored on blocks:
              32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
              4096000
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done

  5. 将新建分区挂载到需要增加空间的目录下。

    新增加的分区挂载到不为空的目录时,该目录下原本的子目录和文件会被隐藏,所以,新增的分区最好挂载到空目录或者新建目录。如果确实要挂载到不为空的目录,可将该目录下的子目录和文件临时移动到其他目录下,待新分区挂载成功后,再将子目录和文件移动回来。

    以新建目录/root/new为例:
    1. 执行以下命令,在/root下新建目录new。

      mkdir /root/new

    2. 执行以下命令,将新分区挂载至“/root/new”目录。

      mount /dev/xvda3 /root/new

      回显类似如下:

      [root@ecs-86dc ]# mount /dev/xvda3 /root/new
      [root@ecs-86dc ]#
    3. 执行以下命令,查看挂载结果。

      df -TH

      回显类似如下:

      图10 查看挂载结果

  6. 根据需要,判断是否需要将新增磁盘设置为开机自动挂载。

    如果未设置开机自动挂载,重启弹性云服务器后,用户需要将新建分区重新挂载至指定目录。
    • 是,执行7
    • 否,任务结束。

  7. 设置开机自动挂载新增磁盘。

    禁止将未经过格式化的磁盘设为开机自动挂载,否则会导致弹性云服务器无法正常启动。

    1. 执行以下命令,获取文件系统类型、UUID。

      blkid

      图11 查看文件系统类型

      则新建分区的UUID=96e5e028-b0fb-4547-a82a-35ace1086c4f。

    2. 执行以下命令,使用vi编辑器打开“fstab”文件。

      vi /etc/fstab

    3. 按“i”,进入编辑模式。
    4. 将光标移动至文件末尾,按“Enter”,并添加如下语句:

      UUID=96e5e028-b0fb-4547-a82a-35ace1086c4f /root/new ext4 defaults 0 0

    5. 按“Esc”,执行以下命令,并按“Enter”,保存设置并退出编辑器。

      :wq

    将新增磁盘设置为开机自动挂载后,如果要卸载该磁盘,必须先删除新增磁盘的自动挂载配置信息,否则卸载该磁盘后,会导致弹性云服务器无法正常启动。删除自动挂载配置信息的方法为:

    1. 执行以下命令,使用vi编辑器打开“fstab”文件。

      vi /etc/fstab

    2. 按“i”,进入编辑模式。
    3. 删除如下语句:

      UUID=96e5e028-b0fb-4547-a82a-35ace1086c4f /root/new ext4 defaults 0 0

    4. 按“Esc”,执行以下命令,并按“Enter”,保存设置并退出编辑器。

      :wq

分享:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问