File Systems that Support Resizing The file system must support resizing to take advantage of increases in available space for the volume. In SUSE Linux Enterprise Server, file system resizing utilities are available for file systems Ext2, Ext3, and Ext4. The utilities support increasing and decreasing the size as follows:

FILE SYSTEM SUPPORT FOR RESIZING 

File System

Utility

Increase Size (Grow)

Decrease Size (Shrink)

Btrfs

btrfs filesystem resize

Online

Online

XFS

xfs_growfs

Online

Not supported

Ext2

resize2fs

Online or offline

Offline only

Ext3

resize2fs

Online or offline

Offline only

Ext4

resize2fs

Online or offline

Offline only

Increasing the Size of a File System

You can grow a file system to the maximum space available on the device, or specify an exact size. Ensure that you grow the size of the device or logical volume before you attempt to increase the size of the file system.

When specifying an exact size for the file system, ensure that the new size satisfies the following conditions:

  • The new size must be greater than the size of the existing data; otherwise, data loss occurs.

  • The new size must be equal to or less than the current device size because the file system size cannot extend beyond the space available.

Decreasing the Size of a File System

When decreasing the size of the file system on a device, ensure that the new size satisfies the following conditions:

  • The new size must be greater than the size of the existing data; otherwise, data loss occurs.

  • The new size must be equal to or less than the current device size because the file system size cannot extend beyond the space available.

If you plan to also decrease the size of the logical volume that holds the file system, ensure that you decrease the size of the file system before you attempt to decrease the size of the device or logical volume.

Changing the Size of a Btrfs File System 

The size of a Btrfs file system can be changed by using the btrfs filesystem resize command when the file system is mounted. Increasing and decreasing the size are both supported while the file system is mounted.

  1. Open a terminal console.
  2. Make sure the file system you want to change is mounted.
  3. Change the size of the file system using the btrfs filesystem resize command with one of the following methods:
    • To extend the file system size to the maximum available size of the device, enter
      tux > sudo btrfs filesystem resize max /mnt

       

    • To extend the file system to a specific size, enter
      tux > sudo btrfs filesystem resize SIZE /mnt

       

      Replace SIZE with the desired size in bytes. You can also specify units on the value, such as 50000K (kilobytes), 250M (megabytes), or 2G (gigabytes). Alternatively, you can specify an increase or decrease to the current size by prefixing the value with a plus (+) or a minus (-) sign, respectively:

      tux > sudo btrfs filesystem resize +SIZE /mnt sudo btrfs filesystem resize -SIZE /mnt

       

  4. Check the effect of the resize on the mounted file system by entering
    tux > df -h

     

    The Disk Free (df) command shows the total size of the disk, the number of blocks used, and the number of blocks available on the file system. The -h option prints sizes in human-readable format, such as 1K, 234M, or 2G.

Changing the Size of an XFS File System

The size of an XFS file system can be increased by using the xfs_growfs command when the file system is mounted. Reducing the size of an XFS file system is not possible.

  1. Open a terminal console.
  2. Make sure the file system you want to change is mounted.
  3. Increase the size of the file system using the xfs_growfs command. The following example expands the size of the file system to the maximum value available. See man 8 xfs_growfs for more options.
    tux > sudo xfs_growfs -d /mnt

     

  4. Check the effect of the resize on the mounted file system by entering
    tux > df -h

     

    The Disk Free (df) command shows the total size of the disk, the number of blocks used, and the number of blocks available on the file system. The -h option prints sizes in human-readable format, such as 1K, 234M, or 2G.

Changing the Size of an Ext2, Ext3, or Ext4 File System

The size of Ext2, Ext3, and Ext4 file systems can be increased by using the resize2fs command, regardless of whether the respective partition is mounted or not. To decrease the size of an Ext file system it needs to be unmounted.

  1. Open a terminal console.
  2. If the file system size should be decreased, unmount it.
  3. Change the size of the file system using one of the following methods:
    • To extend the file system size to the maximum available size of the device called /dev/sda1, enter
      tux > sudo resize2fs /dev/sda1

       

      If a size parameter is not specified, the size defaults to the size of the partition.

    • To change the file system to a specific size, enter
      tux > sudo resize2fs /dev/sda1 SIZE

      The SIZE parameter specifies the requested new size of the file system. If no units are specified, the unit of the size parameter is the block size of the file system. Optionally, the size parameter can be suffixed by one of the following unit designations: s for 512 byte sectors; K for kilobytes (1 kilobyte is 1024 bytes); M for megabytes; or G for gigabytes.

    Wait until the resizing is completed before continuing.

  4. If the file system is not mounted, mount it now.
  5. Check the effect of the resize on the mounted file system by entering
    tux > df -h

    The Disk Free (df) command shows the total size of the disk, the number of blocks used, and the number of blocks available on the file system. The -h option prints sizes in human-readable format, such as 1K, 234M, or 2G.