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
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)
|
0.255
|
0.255
|
Root
|
915 (15)
|
100
|
Home
|
0 (4.3)
|
815
|
Swap
|
16
|
16
|
Total (approx)
|
931
|
931
|
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
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”.
c.
Run: “lvresize
-L 100G 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.
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.