As usual, I will start by getting to the bottom of it, then explain everything
first, you need to first shrink the file system, then the partition where the filesystem resides, replace /dev/sda4 with whatever you partition is named
1- Shrinking the filesystem
Unmount the partition to be resized,
umount /mountpoint
otherwise you will get a message such as
Filesystem at /dev/sda4 is mounted on /mountpoint; on-line resizing required On-line shrinking from 30453104 to 98098 not supported.
The following commands are relevant to the program resize2fs, they are hands on examples of use, take a close look at the description of what each does before you proceed by picking how you want to use the command.
* Show the minimum size we can squeeze this partition to without losing data resize2fs -P /dev/sda4 * do the filesystem resize to the MINIMUM possible size (the number you ended up with in the previous command) resize2fs -M /dev/sda4
The command above moves all data to the beginning of the filesystem/drive, then shrinks it to the smallest possible size.
2- Shrinking the partition
2.1- Find the boundaries of the file system with fdisk
3- You are DONE
If this is it, why is there much more in this tutorial, Simply put, what is above does very little explaining, if you want to understand what we did, you will need a bit more
the assumption, I have a partition that only has 5% data, I would like to shrink the partition to ten percent of it’s size.
Unlike windows, where your luck of where the data resides, you can always shrink a Linux partition to whatever size fits the data that is on it (without losing data)
in this tutorial, I will assume the partition is /dev/sda4, you will need to replace that with whatever your partition is.
1- collecting information about our partition
fdisk /dev/sda
then the p command for print
df -h
this should show you all the partitions, info about them and where they are mounted and how much space is used
the file system can be shrunk with resize2fs
the command “resize2fs -M” should first move the data to the beginning of the drive, then shrink it
first, how large is the file system ATM
tune2fs -l /dev/sda2 then multiply by block size