Wednesday, April 27, 2016

Create Logical "Home" Volume When Using Logical Volume Management (VLM)

1. Getting Started. Introductory Material.

This guide assumes that logical volumes have been installed and that there is no volume dedicated to the “home” directory. The process for establishing a “home” directory using partitions is described in Ubuntu documentation Partitioning/Home/Moving. The process for using logical volumes is similar, but involves a substantially different process. Reading the Ubuntu documentation before beginning will be beneficial.

The nature of logical volume management (LVM) is described here. What is LVM

The following document is being referenced for informational purposes: HowTo: Set up Ubuntu Desktop with LVM Partitions

This tutorial was based on using Ubuntu 16.04.

2. Preliminary Step. Determine Volume Allocations.

Determine the amount of space that needs to be dedicated to the operating system (root) and the amount of space that should be allocated to “home”. Essentially the process you will be following will involve splitting the “root” volume into two volumes. One volume will remain "root" and a new volume “newhome” will be created. In the table below, “root” has an allocation of 915G. Fifteen Gigabytes of data have been installed of which 4.3G occurs within the “home” directory.

Size of the Hard Disk - 1000G
Applicable Volume
Current Allocation (Usage)
Proposed Allocation
Partition1 (Boot)
915 (15)
0 (4.3)
Total (approx)

Obtain your logical volume group name and volume name by using the Logical VolumeManagement application. This application is available through the Ubuntu Software Center by entering "LVM". This information is also available through the terminal by issuing the command "sudo lvdisplay" In this example the logical group name is: “ubuntu-vg”. The logical volume name is “root”.

Backup your computer before going further!

3. Early Steps.

Boot the computer from a live CD.
The “root” volume must be unmounted.

Before attempting to use “apt-get” to download packages run “apt-get update” to get the software list updated should downloading be necessary.

Below are two reference resources that I relied on. Please note that the syntax used in some of the examples provided may not be available in Ubuntu.

Redhat LVMConfiguration Examples

ArchLinux Wiki: LVM

4. Reduce the size of both the root volume and root file system.

Approach #1. The preferred approach.
a. Run:lvresize -L 100G -r ubuntu-vg/root 

Approach #2.
a. Run: “e2fsck-f /dev/ubuntu-vg/root”.
b. Run: “resize2fs /dev/ubuntu-vg/root 70G
c. Run: “lvresize -L 100G ubuntu-vg/root
d. Run: “Run “resize2fs /dev/ubuntu-vg/root

Notes: Apparently I did something wrong when using “lvresize” since it would not recognize the “-r” option. Consequently,  I used Approach #2. Use Approach #1 if you can.

ArchLinuxWiki examples for reducing the size of the volume and file system.

5. Create new volume and establish file system.

a. Run: "lvcreate -l 100%FREE ubuntu-vg -n newhome /dev/sda5
b. Run: "mkfs.ext4 /dev/mapper/ubuntu--vg-newhome"  
ArchLinux Wiki example for creating a volume.

To view the results of the preceding operations use: "lvdisplay"

6. Modify the "fstab" file to mount "newhome" under /media/home

Modify the  /etc/fstab file to add the lines:

# Logical volume for home
/dev/mapper/ubuntu--vg-newhome /media/home        ext4         errors=remount-ro       0       2

This can be done before you re-boot or after you reboot into normal operation. From this point on you can follow the prior Ubuntu documentation on creating a home partition stating with the section: "Copy /home to the New Partition".

7. Copy home into the new /media/home volume.

a. Run: "sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/home/. "

8. Modify the "fstab" file to mount "newhome" under /home.

# Logical volume for home
/dev/mapper/ubuntu--vg-newhome /home ext4 errors=remount-ro 0 2

Don't reboot.

9. Save "old" home by copying to "old_home"  and creating empty home folder.


a. Run: "cd / && sudo mv /home /old_home && sudo mkdir /home"

OK to reboot. 

Final Notes: I did this once and kept the notes you see above, I will not claim to be any sort of expert. Evidently, importing the text from LibreOffice wasn't helpful in terms of formatting this web-page. Please let me know if there are any correction and/or modifications that would benefit future readers.