Categories: TutorialsUbuntu

How to Convert a Directory to a Partition in Linux

If you have opted for the default options during the installation of your operating system, chances are that all your folders lie in the same partition which is the root ( / ) partition. While this is perfectly okay, it presents a challenge when you want to reinstall your OS as you won’t be able to preserve your files and documents. The entire root system is wiped clean. Good practice demands that you create a separate home partition as well as boot and swap partitions so that you can reinstall your OS at ease.

If you already have the home folder together with other folders in the same partition, worry not. In this guide, we demonstrate how you can migrate the home folder to another partition. We will demonstrate this using an external drive which we will back up the home directory and configure it as a partition.

Step
Sponsored
1: Confirm the size of the home partition and external drive

The first step is to confirm the size of your home directory.

$ df -Th /home

In our case, our directory is 13G.

The external drive should be greater in size than your home directory. We have a 16GB external drive which should be sufficient for the job.

Step 2: Format external USB drive

In the next step, we will format the external drive using the ext4 file format. First, we will unmount the drive.

$ unmount /dev/sdb

Then we will format it using ext4 file format.

$ mkfs.ext4 /dev/sdb

Step 3: Create a directory for mounting the drive

Next create a directory for mounting the external drive. In our case we have created the /srv/home directory.

$ mkdir -p /srv/home

Then , mount the external drive as follows.

$ mount /dev/sdb /srv/home

To confirm that the drive has been mounted, use the command as shown

$ df -Th | grep sdb

Step 4: Copy the home directory to the mounted drive

Next, transfer or copy all the files on your home directory to the /srv/home/ mount point.

$ rsync -av /home/* /srv/home/

This might take a while depending on the contents of your home directory especially in the Downloads directory. So, be patient as the copying process progresses.

Once done, you will get a summary of the total size copied. In our case, the size of files transferred was 3GB.

Sponsored

You can verify the disk space usage as follows:

$ df -Th | grep sdb

Step 5: Mount the filesystem

NExt, delete all the files and folders under the home directory.

# rm -rf /home/*

Then unmount the /srv/home mount point on which the /dev/sdb device is mounted.

# umount /srv/home

Next, mount the external drive to the home folder.

# mount /dev/sdb /home/

And list its contents to ensure that your folders are intact.

# ls -l /home

Then set the directory permissions as follows just in case the default umask has changed.

# chmod -R 755 /home

NOTE:

The changes that we have made will not survive a reboot. To address this matter, we need to append some parameters to the /etc/fstab file.

But first, let’s get the UUID of our external volume. You can achieve this as follows:

$ blkid /dev/sdb

/dev/sdb: UUID="56bd886b-daa0-4bc4-add1-e0e2b64bff01" TYPE="ext4"

Next, access the /etc/fstab file.

# vim /etc/fstab

Then append the following parameters

UUID=[ID] /home ext4 defaults 0 2

In our case, we have:

UUID="56bd886b-daa0-4bc4-add1-e0e2b64bff01" /home ext4 defaults 0 2

Save the file and reload the /etc/fstab file.

# mount -a

Your home folder has now been migrated and accessible in a separate partition.

Ubuntu Server Admin

Recent Posts

Kolla Ansible OpenStack Installation (Ubuntu 24.04)

Kolla Ansible provides production-ready containers (here, Docker) and deployment tools for operating OpenStack clouds. This…

2 days ago

Canonical announces first Ubuntu Desktop image for Qualcomm Dragonwing™ Platform with Ubuntu 24.04

This public beta enables the full Ubuntu Desktop experience on the Qualcomm Dragonwing™ QCS6490 and…

3 days ago

The long march towards delivering CRA compliance

Time is running out to be in full compliance with the EU Cyber Resilience Act,…

3 days ago

Extra Factor Authentication: how to create zero trust IAM with third-party IdPs

Identity management is vitally important in cybersecurity. Every time someone tries to access your networks,…

4 days ago

Ubuntu Weekly Newsletter Issue 889

Welcome to the Ubuntu Weekly Newsletter, Issue 889 for the week of April 20 –…

6 days ago

From pidfd to Shimanami Kaido: My RubyKaigi 2025 Experience

Introduction I just returned from RubyKaigi 2025, which ran from April 16th to 18th at…

6 days ago