Merging root and home filesystems

Yocto takes up a lot of space when it builds. If the /home partition is 30 GB or smaller, I am going to fill it up. The systems I get provisioned from Beaker are routinely splitting their disks between / and /home. These are both logical volumes in the same volume group. This is easy to merge.

In order to merge them I find myself performing the following steps.

umount /home/
mkdir /althome

I then modify /etc/fstab so that the /home entry is now pointing to /althome. If I have done any work in /home/ayoung (almost always) I have to copy it to the new /home partition

mount /alhome/
cp  /althome/ayoung /home/ayoung

Once the home volume has been cleared, I can reclaim the space. The following lines will vary depending on the name of the machine.

lvremove /dev/rhel_hpe-moonshot-02-c07/home
lvresize  -L   +32.48G  /dev/rhel_hpe-moonshot-02-c07/root

I am explicitly reclaiming the size of the /home volume, which in this case is 32.48 GB.

A little bit of foresight can obviously avoid this problem; properly allocate the disks according to the workload. Requesting a machine with more disk is also an option.

But sometimes we have to fix mistakes.

Note that I use the lvdisplay command to see the names of the volumes.

In order to make use of the new space, I have to resize the file system. Since it is XFS, I use the xfs_grow command. I want the full size, so I don’t need to pass a parameter.

xfs_growfs /dev/mapper/rhel_hpe--moonshot--02--c07-root

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.