I have my /home on a BTRFS partition and I need to shrink it, unfortunately Gparted does not have the resize option for this FS. Can I resize it in any other way without losing my data?
According to the GParted features page, btrfs shrink is supported. If the option isn't available, installing the btrfs-tools package may fix it. If that doesn't work, it could be because Ubuntu includes an older version of GParted, in which case you could use the GParted Live CD:
(which is also how Ubuntu recommends using it anyway)
To shrink the filesystem by 4 GiB:
btrfs filesystem resize -4g /mntor
btrfsctl -r -4g /mntSet the FS size . To set the filesystem to a specific size, omit the leading + or - from the size.
btrfsctl commands in Ubuntu is provided by the package called
btrfs-utils, which you can install in the Software Center. You run these commands in the Terminal (Ctrl+Alt+T). Replace
4g by however much you really want to shrink the partition, and
/mnt by the mount point of the partition. For example, to shrink a btrfs partition mounted at /media/Alpha by 500 MiB, you would run:
btrfs filesystem resize -500m /media/Alpha
btrfsctl -r -500m /media/Alpha
Assuming the guidelines for resizing btrfs filesystems are the same as for other filesystems, you should avoid resizing a partition that is on the same physical disk as the running system. So, if necessary, boot from a live system to resize a partition on the drive that has your installed Ubuntu system. (This applies to resizing done in GParted, too.)
If some utilities or applications don't see the results of the resizing operation when it is performed, rebooting is a good idea.
I am not personally very familiar with btrfs filesystems, but it seems strange to me that these resize commands take the mount point of the filesystem rather than the device name. If anyone can explain that, please comment or feel free to edit this answer to improve it.