Resizing file systems—not to be confused with resizing partitions or volumes—can be used to make space available on physical volumes or to make use of additional space available on a physical volume.
It is strongly recommended to use the YaST Partitioner to resize partitions or logical volumes. When doing so, the file system will automatically be adjusted to the new size of the partition or volume. However, there are some cases where you need to resize the file system manually, because they are not supported by YaST:
After having resized a virtual disk of a VM Guest.
After having resized a volume from a network-attached storage.
After having manually resized partitions (for example by using
fdisk or parted) or logical
volumes (for example by using lvresize).
When wanting to shrink Btrfs file systems (as of SUSE Linux Enterprise Server 12, YaST only supports growing Btrfs file systems).
Resizing any file system involves some risks that can potentially result in losing data.
To avoid data loss, ensure that you back up your data before you begin any resizing task.
Consider the following guidelines when planning to resize a file system.
The file system must support resizing in order 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, Ext4, and ReiserFS. The utilities support increasing and decreasing the size as follows:
|
File System |
Utility |
Increase Size (Grow) |
Decrease Size (Shrink) |
|---|---|---|---|
|
Btrfs |
btrfs filesystem resize |
Online |
Online |
|
XFS |
xfs_growfs |
Online |
Not supported |
|
Ext2 |
resize2fs |
Offline only |
Offline only |
|
Ext3 |
resize2fs |
Online or offline |
Offline only |
|
Ext4 |
resize2fs |
Offline only |
Offline only |
|
ReiserFS |
resize_reiserfs |
Online or offline |
Offline only |
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.
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.
Decreasing the size of a file system formatted with XFS is not possible, since such a feature is not supported by XFS.
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.
Open a terminal console.
Make sure the file system you want to change is mounted.
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
sudo btrfs filesystem resize max /mnt
To extend the file system to a specific size, enter
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:
sudo btrfs filesystem resize +size /mnt btrfs filesystem resize -size /mnt
Check the effect of the resize on the mounted file system by entering
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.
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.
Open a terminal console.
Make sure the file system you want to change is mounted.
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.
sudo xfs_growfs -d /mnt
Check the effect of the resize on the mounted file system by entering
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.
The size of Ext2, Ext3, and Ext4 file systems can be increased by using
the resize2fs command when the file system is
mounted. The size of an Ext3 file system can also be increased by using
the resize2fs command when the file system is
unmounted. To decrease the size of an Ext file system it needs to be
unmounted.
Open a terminal console.
If the file system is Ext2, you must unmount the file system in any case. The Ext3 and Ext4 file systems can be mounted for increasing the size; they need to be unmounted for decreasing the size.
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
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
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
designators: 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.
If the file system is not mounted, mount it now.
Check the effect of the resize on the mounted file system by entering
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.
A ReiserFS file system can be increased in size while mounted or unmounted. To decrease its size it needs to be unmounted.
Open a terminal console.
If you want to decrease the size of the file system, unmount it in case it is mounted.
Change the size of the file system on the device called
/dev/sda2, using one of the following methods:
To extend the file system size to the maximum available size of the device, enter
sudo resize_reiserfs /dev/sda2
When no size is specified, this increases the volume to the full size of the partition.
To extend the file system to a specific size, enter
sudo resize_reiserfs -s size /dev/sda2
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 minus
(-) sign, respectively:
sudo resize_reiserfs -s +size /dev/sda2 sudo resize_reiserfs -s -size /dev/sda2
Wait until the resizing is completed before continuing.
If the file system is not mounted, mount it now.
Check the effect of the resize on the mounted file system by entering
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.