<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>

<sect1 id="ch-boot-lilo">
  <?dbhtml filename="lilo.html"?>

  <title>Making the CLFS System Bootable</title>

  <indexterm zone="ch-boot-lilo">
    <primary sortas="a-Lilo">Lilo</primary>
    <secondary>configuring</secondary>
  </indexterm>

  <para os="a">You are nearly ready to boot to the new temporary system.
  One of the last things to do is to ensure that the system can be booted.
  The instructions below apply only to x86_64 machines on which lilo is going
  to be installed. Information on using a pre-installed Grub on machines
  currently running as x86 or x86_64 multilib should be available in the
  usual resource-specific locations for those architectures.  If you have
  installed an x86 version of lilo, these instructions should be modified
  to refer to the <command>lilo</command> and <command>keytab-lilo.pl
  </command> commands you installed on the host system.</para>

  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
  href="../x86/grub.xml"
  xpointer="xpointer(//*[@os='b'])"/>

  <para os="c">If you have multiple systems on your machine using a different
  bootloader such as grub, you may prefer to use that instead - consult the
  appropriate documentation.  The rest of this section assumes you are going
  to use lilo.</para> 

  <para os="d">Earlier, we compiled and installed the Lilo boot loader software
  in preparation for this step. The procedure involves writing a boot image to
  a specific location on the hard drive. If you have a floppy disk drive, or
  if you have installed a cd recording program, we highly recommend using
  mkrescue to create a Lilo boot floppy, or CD (using e.g. dvdrecord from
  dvdrtools) as a test and as a backup.</para>

  <para os="e">Normally, you interact with lilo by using the cursor and enter
  keys to select from the available option(s), but sometimes it is necessary to
  add other boot options, such as e.g. 'init=/bin/bash' to debug boot failures.
  The more your keyboard layout differs from the US qwerty layout, the harder
  it will be to type boot options unless lilo knows about your keyboard layout.
  So, we will create a key table for Lilo (.ktl) file - at one point in the
  documentation these are referred to as .klt files, which may be a typo, but
  has been followed by some distros.  The name, and location, are not important
  but it is conventional to put these in /boot with the name representing the
  key layout.  For a British keyboard layout, the following command will
  achieve this:</para> 

<screen os="f" role="nodump"><userinput>keytab-lilo.pl uk >i${LFS}/boot/uk.ktl</userinput></screen>

  <para os="g">The argument to the command is the name of the keymap, or if
    necessary you can specify the full path to the keymap.  Use whatever
    is appropriate for your keyboard.</para>

  <para os="i">The next step is to create /etc/lilo.conf</para>

<screen os="j" role="nodump"><userinput>cat &gt; ${LFS}/etc/lilo.conf &lt;&lt; "EOF"
<literal># Begin /etc/lilo.conf
# lilo.conf
#
# global options
boot=/dev/&lt;bootdisk&gt;
keytable=/boot/&lt;keytable&gt;
lba32
map=/boot/map
prompt

# set the name of the default image to boot
default=lfs

# define an image
image=/boot/lfskernel
    label=lfs
    root=/dev/&lt;partition&gt;
    read-only
# optionally add parameters to pass, e.g.
#   append="video=radeonfb:1024x768-16@70"

# if you had an existing system, you could
# add its details here.
EOF</literal></userinput></screen>


  <para os="k">Replace &lt;bootdisk&gt; with the name of the disk (or
    partition) on which the boot sector is to be written, e.g. sda. Replace
    &lt;keytable&gt; with the name of the keytable file you created, and
    &lt;partition&gt; with the name of the root partition for the new
    system.
  </para>

  <warning os="l">
    <para>The following command will overwrite any current boot loader.
    Do not run the command if this is not desired. If you have
    cross-compiled on a different machine from the target, you must
    install the bootloader on the target machine, the installed boot
    block is not a file which can be copied with <command>tar</command>. 
    </para>
  </warning>

  <para os="m">Run Lilo:</para>

<screen os="n" role="nodump"><userinput>/tools/bin/lilo-static -v</userinput></screen>

  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
  href="../../bootable/x86_64-64/lilo.xml"
  xpointer="xpointer(//*[@os='o'])"/>

</sect1>
