Converting a Linux Root Filesystem to LVM: A Step-by-Step Guide

Logical Volume Management (LVM) is a powerful tool that provides flexible and efficient management of disk storage in Linux systems. Converting a traditional Linux root filesystem to LVM can offer numerous benefits, such as easier resizing, snapshot creation, and improved disk utilization. In this article, we will walk through the process of converting a Linux root filesystem to LVM, ensuring a smooth transition while safeguarding your data.

Prerequisites

Before proceeding with the conversion process, it is crucial to take proper precautions:

  1. Backup Your Data: Although this process is generally safe, there is always a risk of data loss. Ensure you have a complete backup of your system in case of any unexpected issues.
  2. Verify Disk Space: Ensure that you have sufficient free space available for the LVM volumes you wish to create.
  3. Boot from Live Media: To perform this conversion, you must boot your system from a live Linux distribution. This prevents changes to the root filesystem while the conversion is in progress.

Step 1: Boot from Live Media

Insert the live Linux distribution (e.g., Ubuntu or Fedora) into your system and boot from it. Once booted, open a terminal or console to execute the commands.

Step 2: Install LVM Tools (if necessary)

Most live distributions come with LVM tools pre-installed. However, if the necessary tools are missing, you can install them using the package manager specific to your distribution. For example, on Ubuntu-based systems:

sudo apt-get update
sudo apt-get install lvm2

Step 3: Identify Disk Partitions

Use the following command to identify your disk partitions:

sudo fdisk -l

Look for the partition that currently holds your root filesystem (e.g., /dev/sda1).

Step 4: Create Physical Volumes (PVs)

Now, we will turn the identified disk partition into an LVM physical volume (PV):

sudo pvcreate /dev/sda1

Step 5: Create Volume Group (VG)

The next step is to create a volume group that will hold the logical volumes:

sudo vgcreate my_vg /dev/sda1

Here, “my_vg” is the name of the volume group, and “/dev/sda1” is the physical volume you created in the previous step.

Step 6: Create Logical Volumes (LVs)

Create logical volumes for the root filesystem and any other filesystems you want to manage with LVM. For example:

sudo lvcreate -n root_lv -L 20G my_vg

In this command, we create a logical volume named “root_lv” with a size of 20GB within the “my_vg” volume group.

Step 7: Format and Mount the Logical Volumes

Format the logical volumes with the desired filesystem (e.g., ext4):

sudo mkfs.ext4 /dev/my_vg/root_lv

Mount the logical volumes:

sudo mount /dev/my_vg/root_lv /mnt
sudo mkdir /mnt/boot
sudo mount /dev/sda2 /mnt/boot

Here, “/dev/sda2” is assumed to be the partition where your /boot directory resides.

Step 8: Move Root Filesystem

Copy the root filesystem to the new logical volume:

sudo cp -aR / /mnt/

Step 9: Update /etc/fstab

Modify the /mnt/etc/fstab file to reflect the changes in the new LVM setup. Replace the old root partition entry with the new logical volume:

/dev/my_vg/root_lv / ext4 defaults 0 1

Step 10: Chroot into the New Environment

Chroot into the new environment to update the bootloader and other necessary configurations:

sudo mount -o bind /dev /mnt/dev
sudo mount -t proc none /mnt/proc
sudo mount -t sysfs none /mnt/sys
sudo chroot /mnt /bin/bash

Step 11: Update Bootloader

Update the bootloader configuration (e.g., GRUB) to reflect the changes:

For Ubuntu:

update-grub

For Fedora:

grub2-mkconfig -o /boot/grub2/grub.cfg

Step 12: Reboot

Exit the chroot environment and unmount all the mounted partitions:

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

Finally, reboot your system:

sudo reboot

Conclusion

Congratulations! You have successfully converted your Linux root filesystem to LVM. You can now enjoy the benefits of Logical Volume Management, including greater flexibility and efficient disk management. Remember to familiarize yourself with LVM’s various capabilities to make the most of your newly optimized storage solution.