This page is currently a work in progress
This tutorial will show you how to install Funtoo, including the rootfs, on logical volumes. This guide is meant to complement the regular Funtoo Installation Guide. It is recommended to open it in another tab, window ect.. and follow along with it as we will only be documenting the steps that are different or in addition to the regular guide.
Introduction to LVM
LVM (Logical Volume Management) offers a much more flexible way of managing your storage devices. Not only does it allow you to resize your volumes while the system is still up, it also frees you from having to decide exactly how many or how big volumes need to be at the time of installation.
For a detailed tour and introduction to LVM please consult the LVM Fun page.
Please read the Live CD section in the regular guide. The only thing you need in addition to the requirements it mentions is the sys-fs/lvm2 package or equivalent. If you use System Rescue CD, it includes the lvm2 package.
Prepare Hard Disk
Preparing the hard disk for an LVM install isn't much different from a normal install except that we won't be creating a bunch of partitions as we are going to use logical volumes instead. All we need is a /boot partition, if your using gpt, you'll need the GRUB partition, and the rest of the space will just be one big partition which we'll create our logical volumes out of.
We're using the previous mentioned setup to keep things simple in this guide. We are also assuming your only using one hard disk though LVM supports adding multiple hard disks and partitions to a volume group. Please adapt these instructions to suit your needs
The regular install guide does a good job explaining MRB, GPT, and gdisk/fdisk so we won't be repeating that here. Read through the Prepare Hard Disk section and create the previous mentioned partitions.
If your following our setup your partition table should look like the following when completed:
GPT partition table
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A4E5208A-CED3-4263-BB25-7147DC426931
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
2 1026048 1091583 32.0 MiB EF02 BIOS boot partition
3 1091584 83886046 39.5 GiB 8300 Linux filesystem
MRB partition table
Command (? for help): p
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6919e82c
Device Boot Start End Blocks Id System
/dev/sda1 2048 1026047 512000 83 Linux
/dev/sda2 1026048 83886079 41430016 83 Linux
Creating Logical Volumes
In this section we will cover the basics of creating volume groups and logical volumes. For an in depth explanation please see the LVM Fun page.
Creating a Physical Volume
Our first step is to create a physical volume which basically just tells the lvm where to write the data to.
Create a physical volume out of the big partition we created in the previous step. If your using the MRB setup then change /dev/sda3 to /dev/sda2 in the following command
# pvcreate /dev/sda3
Creating a Volume Group
Now that we have a place to store our data we need to create a volume group for it. A volume group is simply a named group of at least one physical volume. This allows multiple physical volumes to be used to store data. In our simple example we only have one physical volume so we'll create a volume group and add our physical volume to it in one command. We are going to call our volume group "vg" but you can name it anything you want. Remember to adjust the device path if your using MRB.
# vgcreate vg /dev/sda3
Creating Logical Volumes
We now come to the heart of using LVM, logical volumes. Here we get to create logical volumes to store our data. Remember that the best part of LVM is the ability to resize volumes later on the fly so keep that in mind when deciding how big to make volumes. No need to allocate all your space right away. Also keep in mind when choosing a file system type that it must support resizing in order to take advantage of LVM's resizing features.
For our simple example we are only going to create 3 logical volumes and use them for /(root), /home, and /tmp.
Create the root volume:
# lvcreate --size 10G --name root vg
Logical volume "root" created
As you can see we use the --size option to specify a 10 gig volume and the --name option to name the volume 'root'. Again , you can call your volumes anything you want just remember to adjust the paths in the commands for the rest of the guide. You'll notice we specified a relatively small root partition. This is due to our test disk only being 40G. The last item in the command is simply the name of the volume group we created in the previous section. Run 'lvcreate --help' or consult the manpages for more information on the options use.
Now lets create the other 2 logical volumes for our example:
# lvcreate --size 5G --name tmp vg
Logical volume "tmp" created
#lvcreate --size 10G --name home vg
Logical volume "home" created
Before proceeding you should read through the brief section Creating filesystems in the install guide and decide what type of filesystem you would like to use. Do not actually create any file systems though, we will cover that below.