Separating Home Directory from Filesystem
Today I reached the limit of the predefined partition size of my work-notebook. In order to fix this I separated the /home
directory to it's own partition. Here is how I did it 🤓
# Creating a New Partition
Open up the Disks app of ubuntu in order to create a new partition.
Make sure you set it to be of type ext3
or ext4
.
Give it enough space so your home directory can grow.
Leave the app open, since we will need the partition UUID later on.
# Setup /etc/fstab
First we create a backup of the current /etc/fstab
file.
sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
Now we can securely setup the newly created partition.
sudo vim /etc/fstab
Add the following entry and replace ?????
with the UUID of your newly created partition.
# (identifier) (location, eg sda5) (format, eg ext3 or ext4) (some settings)
UUID=????? /media/home ext4 defaults 0 2
As you can see, we have set the mount-directory for the partition to /media/home
. This is because we first need to copy the files of your /home
directory to a secure location before we can securely use /home
as mount-point for our new partition.
To mount the partition under the given mount-point, we need to execute the following.
sudo mount -a
# Copy /home
to /media/home
As mentioned before, we need to copy all the files to the new partition before we can securely use /home
as mount-point. In order to do so, we can use the rsync
command.
sudo rsync -aXS --progress --exclude='/*/.gvfs' /home/. /media/home/.
You can interrupt the command as often as you need.
rsync
will simply start where it left if executed again 👍
# Switching from /media/home
to /home
Now that we have stored all the files within /home
to /media/home
, we can update the /etc/fstab
to use /home
as mount-point for the partition.
# (identifier) (location, eg sda5) (format, eg ext3 or ext4) (some settings)
UUID=????? /home ext4 defaults 0 2
Do not restart your system just yet!
Create a backup of your home directory and create a replacement with the following command.
cd / && sudo mv /home /old_home && sudo mkdir /home
Now we are ready to mount the new partition at /home
. Run the following to do so.
sudo mount -a
Done! You should now have your home directory within your newly crated partition 💪
# Last steps
Once you are sure that the new setup is working and that all your files are available within the new partition, you can remove the /old_home
directory.
sudo rm -r /old_home
You can also remove the /media/home
directory with the following.
sudo rm -r /media/home
Now you are really done! 🥳
# Official Documentation
Here is a link to the official ubuntu documentation to learn more about the topic.