LVM Install Guide

From Funtoo
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search
Warning: This page is currently a work in progress


Introduction

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.


Live CD

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.

Note: 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

Creating filesystems

Note: 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.