Chapter 23. Configuring ELILO
ELILO is the boot loader used on EFI-based systems, notably Itanium®. Similar to the GRUB, the boot loader on x86 and x86-64 systems, ELILO allows the user to select which installed kernel to load during the system boot sequence. It also allows the user to pass arguments to the kernel. The ELILO configuration file, which is located in the EFI boot partition and symbolically linked to /etc/elilo.conf
, contains a list of global options and image stanzas. When you install the kernel-xen
RPM, a post install script adds the appropriate image stanza to the elilo.conf
.
The ELILO configuration file has two sections:
-
Global options that affect the behavior of ELILO and all the entries. Typically there is no need to change these from the default values.
-
Image stanzas that define a boot selection along with associated options.
Here is a sample image stanza in elilo.conf:
image=vmlinuz-2.6.18-92.el5xen
vmm=xen.gz-2.6.18-92.el5
label=linux
initrd=initrd-2.6.18-92.el5xen.img
read-only
root=/dev/VolGroup00/rhel5_2
append="-- rhgb quiet"
The
image
parameter indicates the following lines apply to a single boot selection. This stanza defines a hypervisor(
vmm
),
initrd
, and command line arguments (
read-only
,
root
and
append
) to the hypervisor and kernel. When ELILO is loaded during the boot sequence, the image is labeled label
linux
.
ELILO translates
read-only
to the kernel command line option
ro
which causes the root file system to be mounted read-only until the
initscripts
mount the root drive as read-write. ELILO copies the "
root
" line to the kernel command line. These are merged with the "
append
" line to build a complete command line:
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
The
--
is used to delimit hypervisor and kernel arguments. The hypervisor arguments come first, then the
--
delimiter, followed by the kernel arguments. The hypervisor does not usually have any arguments.
Technical note
ELILO passes the entire command line to the hypervisor. The hypervisor divides the content and passes the kernel options to the kernel.
To customize the hypervisor, insert parameters before the --
. An example of the hypervisor memory(
mem
) parameter and the
quiet
parameter for the kernel:
append="dom0_mem=2G -- quiet"
ELILO hypervisor parameters
Parameter |
Description |
mem=
|
The
mem
parameter defines the hypervisor maximum RAM usage. Any additional RAM in the system is ignored. The parameter may be specified with a B, K, M or G suffix; representing bytes, kilobytes, megabytes and gigabytes respectively. If no suffix is specified the default unit is kilobytes. |
dom0_mem=
|
dom0_mem=
sets the amount of RAM to allocate to dom0. The same suffixes are respected as for the mem parameter above. The default in Red Hat Enterprise Linux 5.2 on Itanium® is 4G. |
dom0_max_vcpus=
|
dom0_max_vcpus=
sets the number of CPUs to allocate to the hypervisor. The default in Red Hat Enterprise Linux 5.2 on Itanium® is 4. |
com1=
<baud>
,DPS,
<io_base>
,
<irq>
|
com1=
sets the parameters for the first serial line. For example, com1=9600,8n1,0x408,5 . The
io_base
and
irq
options can be omitted to leave them as the standard defaults. The
baud
parameter can be set as
auto
to indicate the boot loader setting should be preserved. The
com1
parameter can be omitted if serial parameters are set as global options in ELILO or in the EFI configuration. |
com2=
<baud>
,DPS,
<io_base>
,
<irq>
|
Set the parameters for the second serial line. Refer the description of the
com1
parameter above. |
console=
<specifier_list>
|
The
console
is a comma delimited preference list for the console options. Options include vga, com1 and com2. This setting should be omitted because the hypervisor attempts to inherit EFI console settings. |
For more information on ELILO parameters
A complete list of ELILO parameters are available from
XenSource.
A modified example of the configuration above, showing syntax for appending memory and cpu allocation parameters to the hypervisor:
image=vmlinuz-2.6.18-92.el5xen
vmm=xen.gz-2.6.18-92.el5
label=linux
initrd=initrd-2.6.18-92.el5xen.img
read-only
root=/dev/VolGroup00/rhel5_2
append="dom0_mem=2G dom0_max_vcpus=2 --"
Additionally this example removes the kernel parameters "
rhgb quiet
" so that kernel and initscript
output are generated on the console. Note the double-dash remains so that the append line is correctly interpreted as hypervisor arguments.