| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | 
							- <?xml version="1.0" encoding="ISO-8859-1"?>
 
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
-   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
-   <!ENTITY % general-entities SYSTEM "../general.ent">
 
-   %general-entities;
 
- ]>
 
- <sect1 id="ch-bootable-grub" role="wrap">
 
-   <?dbhtml filename="grub.html"?>
 
-   <sect1info condition="script">
 
-     <productname>grub</productname>
 
-     <productnumber>&grub-version;</productnumber>
 
-     <address>&grub-url;</address>
 
-   </sect1info>
 
-   <title>Using GRUB to Set Up the Boot Process</title>
 
-   <sect2>
 
-     <title>Introduction</title>
 
-     <para>Boot loading can be a complex area, so a few cautionary
 
-     words are in order. Be familiar with the current boot loader and any other
 
-     operating systems present on the hard drive(s) that need to be
 
-     bootable. Make sure that an emergency boot disk is ready to
 
-     <quote>rescue</quote> the computer if the computer becomes
 
-     unusable (un-bootable).</para>
 
-     <para>The procedure involves writing some special GRUB files to specific
 
-     locations on the hard drive. We highly recommend creating a GRUB boot
 
-     floppy diskette as a backup. Insert a blank floppy diskette and run the
 
-     following commands:</para>
 
- <screen role="nodump"><userinput>cd /tmp
 
- grub-mkrescue --image-type=floppy floppy.img
 
- dd if=floppy.img of=/dev/fd0 bs=1440 count=1</userinput></screen>
 
-     <para>GRUB uses its own naming structure for drives and partitions in
 
-     the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis>
 
-     is the hard drive number and <emphasis>m</emphasis> is the partition
 
-     number. The hard drive number starts from zero, but he partition number
 
-     starts from one for normal partitions and five for extended partitions.  
 
-     Note that this is different form earlier versions where 
 
-     both numbers started from zero. For example, partition <filename
 
-     class="partition">sda1</filename> is <emphasis>(hd0,1)</emphasis> to
 
-     GRUB and <filename class="partition">sdb3</filename> is
 
-     <emphasis>(hd1,3)</emphasis>. In contrast to Linux, GRUB does not
 
-     consider CD-ROM drives to be hard drives. For example, if using a CD
 
-     on <filename class="partition">hdb</filename> and a second hard drive
 
-     on <filename class="partition">hdc</filename>, that second hard drive
 
-     would still be <emphasis>(hd1)</emphasis>.</para>
 
-     <para>You can determine what GRUB thinks your disk devices are by running:</para>
 
- <screen role="nodump"><userinput>grub-mkdevicemap --device-map=device.map
 
- cat device.map</userinput></screen>
 
-     <para>The location of the boot partition is a choice of the user that
 
-     affects the configuration.  One recommendation is to have a separate small
 
-     (suggested size is 100 MB) partition just for boot information.  That way
 
-     each build, whether LFS or some commercial distro, can access the same boot
 
-     files and access can be made from any booted system.  If you choose to do
 
-     this, you will need to mount the separate partition, move all files in the
 
-     current <filename class="directory">/boot</filename> directory (e.g. the
 
-     linux kernel you just built in the previous section) to the new partition.
 
-     You will then need to unmount the partition and remount it as <filename
 
-     class="directory">/boot</filename>.  If you do this, be sure to update
 
-     <filename>/etc/fstab</filename>.</para>
 
-     <para>Using the current lfs partition will also work, but configuration
 
-     for multiple systems is more difficult.</para>
 
-   </sect2>
 
-   <sect2>
 
-     <title>Setting Up the Configuration</title>
 
-     <para>Using the above information, determine the appropriate
 
-     designator for the root partition (or boot partition, if a separate
 
-     one is used). For the following example, it is assumed that the root
 
-     (or separate boot) partition is <filename
 
-     class="partition">sda2</filename>.</para>
 
-     <para>Install the GRUB files into <filename
 
-     class="directory">/boot/grub</filename>:</para> 
 
- <screen role="nodump"><userinput>grub-install --grub-setup=/bin/true /dev/sda</userinput></screen>
 
-     <para>We use --grub-setup=/bin/true for now to prevent updating the
 
-     Master Boot Record (MBR).  In this way, we can test our installation 
 
-     before committing to a change that is hard to revert.</para>
 
-     <para>Generate <filename>/boot/grub/grub.cfg</filename>:</para>
 
- <screen role="nodump"><userinput>grub-mkconfig -o /boot/grub/grub.cfg</userinput></screen>
 
-     <para>Here <command>grub-mkconfig</command> uses the files in <filename
 
-     class="directory">/etc/grub.d/</filename> to determine the contents
 
-     of this file. The configuration file will look something like:</para>
 
- <screen><computeroutput>#
 
- # DO NOT EDIT THIS FILE
 
- #
 
- # It is automatically generated by /usr/sbin/grub-mkconfig using templates
 
- # from /etc/grub.d and settings from /etc/default/grub
 
- #
 
- ### BEGIN /etc/grub.d/00_header ###
 
- set default=0
 
- set timeout=5
 
- ### END /etc/grub.d/00_header ###
 
- ### BEGIN /etc/grub.d/10_linux ###
 
- menuentry "GNU/Linux, Linux 2.6.30.2-lfs65" {
 
-         insmod ext2
 
-         set root=(hd0,2)
 
-         search --no-floppy --fs-uuid --set 915852a7-859e-45a6-9ff0-d3ebfdb5cea2
 
-         linux   /boot/vmlinux-&linux-version;-lfs-&version; root=/dev/sda2 ro
 
- }
 
- menuentry "GNU/Linux, Linux 2.6.30.2-lfs65 (recovery mode)" {
 
-         insmod ext2
 
-         set root=(hd0,2)
 
-         search --no-floppy --fs-uuid --set 915852a7-859e-45a6-9ff0-d3ebfdb5cea2
 
-         linux   /boot/vmlinux-&linux-version;-lfs-&version; root=/dev/sda2 ro single
 
- }
 
- menuentry "GNU/Linux, Linux 2.6.28-11-server" {
 
-         insmod ext2
 
-         set root=(hd0,2)
 
-         search --no-floppy --fs-uuid --set 6b4c0339-5501-4a85-8351-e398e5252be8
 
-         linux   /boot/vmlinuz-2.6.28-11-server root=UUID=6b4c0339-5501-4a85-8351-e398e5252be8 ro
 
-         initrd  /boot/initrd.img-2.6.28-11-server
 
- }
 
- menuentry "GNU/Linux, Linux 2.6.28-11-server (recovery mode)" {
 
-         insmod ext2
 
-         set root=(hd0,2)
 
-         search --no-floppy --fs-uuid --set 6b4c0339-5501-4a85-8351-e398e5252be8
 
-         linux   /boot/vmlinuz-2.6.28-11-server root=UUID=6b4c0339-5501-4a85-8351-e398e5252be8 ro single
 
-         initrd  /boot/initrd.img-2.6.28-11-server
 
- }
 
- ### END /etc/grub.d/10_linux ###
 
- ### BEGIN /etc/grub.d/30_os-prober ###
 
- ### END /etc/grub.d/30_os-prober ###
 
- ### BEGIN /etc/grub.d/40_custom ###
 
- # This file provides an easy way to add custom menu entries.  Simply type the
 
- # menu entries you want to add after this comment.  Be careful not to change
 
- # the 'exec tail' line above.
 
- ### END /etc/grub.d/40_custom ###
 
- </computeroutput></screen>
 
-   <para>Note that even though there is a warning not to edit the file, you can
 
-   do so as long as you do not re-run <command>grub-mkconfig</command>.  The
 
-   <emphasis>search</emphasis> lines are not meaningful for LFS systems as that
 
-   command needs an initrd image for processing. If installing on a separate
 
-   partition the linux and initrd lines will not have the /boot on the file
 
-   names.  In this example the kernel files for a Ubuntu installation are
 
-   also found in <filename class="directory">/boot</filename>.</para>
 
-   </sect2>
 
-    
 
-   <sect2>
 
-      <title>Testing the Configuration</title>
 
-      <para>The core image of GRUB is also a Multiboot kernel, so if you already
 
-      have GRUB Legacy loaded you can load GRUB-&grub-version; through your old
 
-      boot loader.  To accomplish this, you will need to exit the
 
-      <command>chroot</command> environment and re-enter it to finish the
 
-      few remaining portions of the book.</para>
 
- <screen role="nodump"><userinput>/sbin/reboot
 
- ...
 
- grub> root (hd0,1)
 
- grub> kernel /boot/grub/core.img
 
- grub> boot</userinput></screen>
 
-      <para>Note that the GRUB commands above are assumed to be GRUB Legacy.
 
-      At this point the GRUB prompt will appear (very similar to GRUB Legacy) and
 
-      you can explore the interface or boot to one of the systems in the grub.cfg 
 
-      file.</para>
 
-    
 
-    </sect2>
 
-   <sect2>
 
-      <title>Updating the Master Boot Record</title>
 
-      <para>If you tested the GRUB configuration as specified above, re-enter
 
-      the <command>chroot</command> environment.</para>
 
-     <warning>
 
-       <para>The following command will overwrite the current boot loader. Do not
 
-       run the command if this is not desired, for example, if using a third party
 
-       boot manager to manage the Master Boot Record (MBR).</para> 
 
-     </warning>
 
-     <para>Update the MBR with:</para>
 
- <screen role="nodump"><userinput>grub-setup '<DEVICE>'</userinput></screen>
 
-     <para>Change the DEVICE above to your boot disk, normally '(hd0)' or /dev/sda.  
 
-     If using (hd0) be sure to escape the parentheses with backslashes or single
 
-     quotes to prevent the shell from interpreting them as a sub-shell.</para>
 
-     <para>This program uses the following defaults and are correct if you did not
 
-     deviate from the instructions above:</para>
 
-     <itemizedlist>
 
-       <listitem><para>boot image  - boot.img  </para></listitem>
 
-       <listitem><para>core image  - core.img  </para></listitem>
 
-       <listitem><para>directory   - /boot/grub</para></listitem>
 
-       <listitem><para>device map  - device.map</para></listitem>
 
-       <listitem><para>default root setting - guessed</para></listitem>
 
-     </itemizedlist>
 
-    <note><para>The root setting is the default value if a 'set root'
 
-    instruction is not found in grub.cfg.  This is the partition that is
 
-    searched for the kernel and other supporting files.  It is different from
 
-    the 'root=' parameter on the 'linux' line in the configuration line.  The
 
-    latter is the partition the kernel mounts as '/'.  In the example grub.cfg
 
-    above, both values point to /dev/sda2, but if there is a separate boot
 
-    partition, they will be different.</para></note>
 
-    </sect2>
 
- </sect1>
 
 
  |