nav-img
Advanced

How Can I Add the Empty Partition of an Expanded System Disk to the Non-end Root Partition Online?

Scenarios

If the capacity of system disk partitions is inconsistent with the actual system disk capacity after an ECS is created, you can add the empty partition to the root partition of the system disk.

This section describes how to add the empty partition to the non-end root partition online.

Procedure

In the following operations, the ECS that runs CentOS 6.5 64bit and has a 100 GB system disk is used as an example. The system disk has two partitions, /dev/xvda1: root and /dev/xvda2: swap, and the root partition is not the end partition.

  1. Run the following command to view disk partitions:

    parted -l /dev/xvda

    [root@sluo-ecs-a611 ~]# parted -l /dev/xvda
    Disk /dev/xvda: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:
    Number Start End Size Type File system Flags
    1 1049kB 41.0GB 40.9GB primary ext4 boot
    2 41.0GB 42.9GB 2000MB primary linux-swap(v1)

    The first is the root partition, and the second is the swap partition.

  2. View and edit the fstab partition table to delete the swap partition attachment information.
    1. Run the following command to view the fstab partition table:

      tail -n 3 /etc/fstab

      [root@sluo-ecs-a611 ~]# tail -n 3 /etc/fstab
      #
      UUID=7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea / ext4 defaults 1 1
      UUID=5de3cf2c-30c6-4fb2-9e63-830439d4e674 swap swap defaults 0 0
    2. Run the following command to edit the fstab partition table and delete the swap partition attachment information.

      vi /etc/fstab

      tail -n 3 /etc/fstab

      [root@sluo-ecs-a611 ~]# vi /etc/fstab
      [root@sluo-ecs-a611 ~]# tail -n 3 /etc/fstab
      #
      UUID=7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea / ext4 defaults 1 1

  3. Run the following command to disable the swap partition:

    swapoff -a

  4. Delete the swap partition.
    1. Run the following command to view the partition:

      parted /dev/xvda

      [root@sluo-ecs-a611 ~]# parted /dev/xvda
      GNU Parted 3.1
      Using /dev/xvda
      Welcome to GNU Parted! Type ´help´ to view a list of commands.
      (parted) help
      align-check TYPE N check partition N for TYPE(min|opt) alignment
      help [COMMAND] print general help, or help on COMMAND
      mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
      mkpart PART-TYPE [FS-TYPE] START END make a partition
      name NUMBER NAME name partition NUMBER as NAME
      print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a
      particular partition
      quit exit program
      rescue START END rescue a lost partition near START and END
      rm NUMBER delete partition NUMBER
      select DEVICE choose the device to edit
      disk_set FLAG STATE change the FLAG on selected device
      disk_toggle [FLAG] toggle the state of FLAG on selected device
      set NUMBER FLAG STATE change the FLAG on partition NUMBER
      toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
      unit UNIT set the default unit to UNIT
      version display the version number and copyright information of GNU Parted
      (parted)

    2. Press p.
      Disk /dev/xvda: 107GB
      Sector size (logical/physical): 512B/512B
      Partition Table: msdos
      Disk Flags:
      Number Start End Size Type File system Flags
      1 1049kB 41.0GB 40.9GB primary ext4 boot
      2 41.0GB 42.9GB 2000MB primary linux-swap(v1)
    3. Run the following command to delete the partition:

      rm 2

      (parted) rm2

    4. Press p.
      (parted) p
      Disk /dev/xvda: 107GB
      Sector size (logical/physical): 512B/512B
      Partition Table: msdos
      Disk Flags:
      Number Start End Size Type File system Flags
      1 1049kB 41.0GB 40.9GB primary ext4 boot
    5. Run the following command to edit the fstab partition table:

      quit

      (parted) quit
      Information: You may need to update /etc/fstab.

  5. Run the following command to view partition after the swap partition is deleted:

    parted -l /dev/xvda

    [root@sluo-ecs-a611 ~]# parted -l /dev/xvda
    Disk /dev/xvda: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:
    Number Start End Size Type File system Flags
    1 1049kB 41.0GB 40.9GB primary ext4 boot
  6. Run the following command to install the growpart tool:

    This tool may be integrated in the cloud-utils-growpart/cloud-utils/cloud-initramfs-tools/cloud-init package. Run the yum install cloud-* command to ensure it is available.

    yum install cloud-utils-growpart

  7. Run the following command to expand the root partition (the first partition) using growpart:

    growpart /dev/xvda 1

    [root@sluo-ecs-a611 ~]# growpart /dev/xvda 1
    CHANGED: partition=1 start=2048 old: size=79978496 end=79980544 new: size=209710462,end=209712510
  8. Run the following command to verify that online capacity expansion is successful:
    [root@sluo-ecs-a611 ~]# parted -l /dev/xvda
    Disk /dev/xvda: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:
    Number Start End Size Type File system Flags
    1 1049kB 107GB 107GB primary ext4 boot
  9. Run the following command to expand the capacity of the file system:

    resize2fs -f $Partition name

    Suppose the partition name is /dev/xvda1, run the following command:

    [root@sluo-ecs-a611 ~]# resize2fs -f /dev/xvda1
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
    old_desc_blocks = 3, new_desc_blocks = 3
    ....
    [root@sluo-ecs-a611 ~] # df -hT //Check file system capacity expansion