A.4. Set up the boot loader

In order to actually use the initrd at boot time, the boot-loader must know the location of the initrd so it can tell the kernel where to load it from. There are also some other changes that the boot loader needs to know about in order to successfully mount your EVMS volume as the root file system. The procedure is slightly different for LILO and GRUB, the two main boot loaders used with Linux.

A.4.1. LILO procedure

LILO uses the file /etc/lilo.conf as its configuration file. Edit the file with a text editor. If you have not already done so, add an image section for the kernel you will be using with EVMS. The section should look something like this:

image = /boot/vmlinuz-2.4.20 # Replace with your kernel image
  label = 2.4.20  #Any label you'd like to use
  read-only
  initrd = /boot/initrd-evms.gz  # The compressed initrd you just created
  append = "ramdisk=16384 root=/dev/evms/Root"

The last line (beginning with "append") in this section is very important. The line specifies parameters that are passed to the kernel command line. The "ramdisk" option overrides the default ramdisk size. This value is in kilobytes and needs to be at least as big as the initrd image you created in step Section A.3.1. Thus, if your initrd image is 20 MB, you need to set this value to 20 * 1024 = 20480.

The "root" option in the "append" line is not only a parameter to the kernel but also an indicator to the linuxrc script (Section A.3.9) so it can determine the name of your root file system and use it to tell the kernel the actual root device after the volumes have been activated. Obviously, you should set this option to the actual name of your root volume.

After updating /etc/lilo.conf, run lilo to install the boot-loader.

A.4.2. GRUB procedure

GRUB uses the file /boot/grub/menu.lst as its configuration file. Edit this file with a text editor. If you have not already, add a menu item for the kernel you will be using with EVMS. The menu item should look something like this:

title 2.4.20	# Any label you'd like to use
  kernel (hd0,0)/vmlinuz-2.4.20 root=/dev/evms/Root ramdisk=16384
	# Replace with the name of your kernel image.
	# See the Grub documentation for which (hdx,y)
	# value to use.
  initrd (hd0,0)/initrd-evms.gz	# The compressed initrd image you just created

The extra information after the kernel image name is very important. These are parameters that are passed to the kernel command line. The "ramdisk" option overrides the default ramdisk size. This value is in kilobytes and needs to be at least as big as the initrd image you created in Section A.3.1. Thus, if your initrd image is 20 MB, you need to set this value to 20 * 1024 = 20480.

The "root" option in the "kernel" line is not only a parameter to the kernel but also an indicator to the linuxrc script (Section A.3.9) so it can determine the name of your root file system and use it to tell the kernel the actual root device after the volumes have been activated. Obviously, you should set this option to the actual name of your root volume.