Home | History | Annotate | Download | only in docs
      1 This is ../../docs/grub.info, produced by makeinfo version 4.8 from
      2 ../../docs/grub.texi.
      3 
      4 INFO-DIR-SECTION Kernel
      5 START-INFO-DIR-ENTRY
      6 * GRUB: (grub).                 The GRand Unified Bootloader
      7 * grub-install: (grub)Invoking grub-install.    Install GRUB on your drive
      8 * grub-md5-crypt: (grub)Invoking grub-md5-crypt.        Encrypt a password
      9                                                         in MD5 format
     10 * grub-terminfo: (grub)Invoking grub-terminfo.  Generate a terminfo
     11                                                 command from a
     12                                                 terminfo name
     13 * grub-set-default: (grub)Invoking grub-set-default.    Set a default boot
     14                                                         entry
     15 * mbchk: (grub)Invoking mbchk.  Check for the format of a Multiboot kernel
     16 END-INFO-DIR-ENTRY
     17 
     18    Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
     19 
     20    Permission is granted to make and distribute verbatim copies of this
     21 manual provided the copyright notice and this permission notice are
     22 preserved on all copies.
     23 
     24    Permission is granted to copy and distribute modified versions of
     25 this manual under the conditions for verbatim copying, provided also
     26 that the entire resulting derived work is distributed under the terms
     27 of a permission notice identical to this one.
     28 
     29    Permission is granted to copy and distribute translations of this
     30 manual into another language, under the above conditions for modified
     31 versions.
     32 
     33 
     34 File: grub.info,  Node: Top,  Next: Introduction,  Up: (dir)
     35 
     36 GRUB manual
     37 ***********
     38 
     39 This is the documentation of GNU GRUB, the GRand Unified Bootloader, a
     40 flexible and powerful boot loader program for PCs.
     41 
     42    This edition documents version 0.97.
     43 
     44 * Menu:
     45 
     46 * Introduction::                Capturing the spirit of GRUB
     47 * Naming convention::           Names of your drives in GRUB
     48 * Installation::                Installing GRUB on your drive
     49 * Booting::                     How to boot different operating systems
     50 * Configuration::               Writing your own configuration file
     51 * Network::                     Downloading OS images from a network
     52 * Serial terminal::             Using GRUB via a serial line
     53 * Preset Menu::                 Embedding a configuration file into GRUB
     54 * Security::                    Improving the security
     55 * Images::                      GRUB image files
     56 * Filesystem::                  Filesystem syntax and semantics
     57 * Interface::                   The menu and the command-line
     58 * Commands::                    The list of available builtin commands
     59 * Troubleshooting::             Error messages produced by GRUB
     60 * Invoking the grub shell::     How to use the grub shell
     61 * Invoking grub-install::       How to use the GRUB installer
     62 * Invoking grub-md5-crypt::     How to generate a cryptic password
     63 * Invoking grub-terminfo::      How to generate a terminfo command
     64 * Invoking grub-set-default::   How to set a default boot entry
     65 * Invoking mbchk::              How to use the Multiboot checker
     66 * Obtaining and Building GRUB:: How to obtain and build GRUB
     67 * Reporting bugs::              Where you should send a bug report
     68 * Future::                      Some future plans on GRUB
     69 * Internals::                   Hacking GRUB
     70 * Index::
     71 
     72 
     73 File: grub.info,  Node: Introduction,  Next: Naming convention,  Prev: Top,  Up: Top
     74 
     75 1 Introduction to GRUB
     76 **********************
     77 
     78 * Menu:
     79 
     80 * Overview::                    What exactly GRUB is and how to use it
     81 * History::                     From maggot to house fly
     82 * Features::                    GRUB features
     83 * Role of a boot loader::       The role of a boot loader
     84 
     85 
     86 File: grub.info,  Node: Overview,  Next: History,  Up: Introduction
     87 
     88 1.1 Overview
     89 ============
     90 
     91 Briefly, a "boot loader" is the first software program that runs when a
     92 computer starts.  It is responsible for loading and transferring
     93 control to an operating system "kernel" software (such as Linux or GNU
     94 Mach).  The kernel, in turn, initializes the rest of the operating
     95 system (e.g. a GNU system).
     96 
     97    GNU GRUB is a very powerful boot loader, which can load a wide
     98 variety of free operating systems, as well as proprietary operating
     99 systems with chain-loading(1) (*note Overview-Footnote-1::). GRUB is
    100 designed to address the complexity of booting a personal computer; both
    101 the program and this manual are tightly bound to that computer platform,
    102 although porting to other platforms may be addressed in the future.
    103 
    104    One of the important features in GRUB is flexibility; GRUB
    105 understands filesystems and kernel executable formats, so you can load
    106 an arbitrary operating system the way you like, without recording the
    107 physical position of your kernel on the disk. Thus you can load the
    108 kernel just by specifying its file name and the drive and partition
    109 where the kernel resides.
    110 
    111    When booting with GRUB, you can use either a command-line interface
    112 (*note Command-line interface::), or a menu interface (*note Menu
    113 interface::). Using the command-line interface, you type the drive
    114 specification and file name of the kernel manually. In the menu
    115 interface, you just select an OS using the arrow keys. The menu is
    116 based on a configuration file which you prepare beforehand (*note
    117 Configuration::). While in the menu, you can switch to the command-line
    118 mode, and vice-versa. You can even edit menu entries before using them.
    119 
    120    In the following chapters, you will learn how to specify a drive, a
    121 partition, and a file name (*note Naming convention::) to GRUB, how to
    122 install GRUB on your drive (*note Installation::), and how to boot your
    123 OSes (*note Booting::), step by step.
    124 
    125    Besides the GRUB boot loader itself, there is a "grub shell" `grub'
    126 (*note Invoking the grub shell::) which can be run when you are in your
    127 operating system. It emulates the boot loader and can be used for
    128 installing the boot loader.
    129 
    130 
    131 File: grub.info,  Node: Overview-Footnotes,  Up: Overview
    132 
    133    (1) "chain-load" is the mechanism for loading unsupported operating
    134 systems by loading another boot loader. It is typically used for
    135 loading DOS or Windows.
    136 
    137 
    138 File: grub.info,  Node: History,  Next: Features,  Prev: Overview,  Up: Introduction
    139 
    140 1.2 History of GRUB
    141 ===================
    142 
    143 GRUB originated in 1995 when Erich Boleyn was trying to boot the GNU
    144 Hurd with the University of Utah's Mach 4 microkernel (now known as GNU
    145 Mach).  Erich and Brian Ford designed the Multiboot Specification
    146 (*note Multiboot Specification: (multiboot)Top.), because they were
    147 determined not to add to the large number of mutually-incompatible PC
    148 boot methods.
    149 
    150    Erich then began modifying the FreeBSD boot loader so that it would
    151 understand Multiboot. He soon realized that it would be a lot easier to
    152 write his own boot loader from scratch than to keep working on the
    153 FreeBSD boot loader, and so GRUB was born.
    154 
    155    Erich added many features to GRUB, but other priorities prevented him
    156 from keeping up with the demands of its quickly-expanding user base. In
    157 1999, Gordon Matzigkeit and Yoshinori K. Okuji adopted GRUB as an
    158 official GNU package, and opened its development by making the latest
    159 sources available via anonymous CVS. *Note Obtaining and Building
    160 GRUB::, for more information.
    161 
    162 
    163 File: grub.info,  Node: Features,  Next: Role of a boot loader,  Prev: History,  Up: Introduction
    164 
    165 1.3 GRUB features
    166 =================
    167 
    168 The primary requirement for GRUB is that it be compliant with the
    169 "Multiboot Specification", which is described in *Note Multiboot
    170 Specification: (multiboot)Top.
    171 
    172    The other goals, listed in approximate order of importance, are:
    173 
    174    * Basic functions must be straightforward for end-users.
    175 
    176    * Rich functionality to support kernel experts and designers.
    177 
    178    * Backward compatibility for booting FreeBSD, NetBSD, OpenBSD, and
    179      Linux. Proprietary kernels (such as DOS, Windows NT, and OS/2) are
    180      supported via a chain-loading function.
    181 
    182    Except for specific compatibility modes (chain-loading and the Linux
    183 "piggyback" format), all kernels will be started in much the same state
    184 as in the Multiboot Specification. Only kernels loaded at 1 megabyte or
    185 above are presently supported. Any attempt to load below that boundary
    186 will simply result in immediate failure and an error message reporting
    187 the problem.
    188 
    189    In addition to the requirements above, GRUB has the following
    190 features (note that the Multiboot Specification doesn't require all the
    191 features that GRUB supports):
    192 
    193 Recognize multiple executable formats
    194      Support many of the "a.out" variants plus "ELF". Symbol tables are
    195      also loaded.
    196 
    197 Support non-Multiboot kernels
    198      Support many of the various free 32-bit kernels that lack Multiboot
    199      compliance (primarily FreeBSD, NetBSD, OpenBSD, and Linux).
    200      Chain-loading of other boot loaders is also supported.
    201 
    202 Load multiples modules
    203      Fully support the Multiboot feature of loading multiple modules.
    204 
    205 Load a configuration file
    206      Support a human-readable text configuration file with preset boot
    207      commands. You can also load another configuration file dynamically
    208      and embed a preset configuration file in a GRUB image file. The
    209      list of commands (*note Commands::) are a superset of those
    210      supported on the command-line. An example configuration file is
    211      provided in *Note Configuration::.
    212 
    213 Provide a menu interface
    214      A menu interface listing preset boot commands, with a programmable
    215      timeout, is available. There is no fixed limit on the number of
    216      boot entries, and the current implementation has space for several
    217      hundred.
    218 
    219 Have a flexible command-line interface
    220      A fairly flexible command-line interface, accessible from the menu,
    221      is available to edit any preset commands, or write a new boot
    222      command set from scratch. If no configuration file is present,
    223      GRUB drops to the command-line.
    224 
    225      The list of commands (*note Commands::) are a subset of those
    226      supported for configuration files. Editing commands closely
    227      resembles the Bash command-line (*note Bash: (features)Command
    228      Line Editing.), with <TAB>-completion of commands, devices,
    229      partitions, and files in a directory depending on context.
    230 
    231 Support multiple filesystem types
    232      Support multiple filesystem types transparently, plus a useful
    233      explicit blocklist notation. The currently supported filesystem
    234      types are "BSD FFS", "DOS FAT16 and FAT32", "Minix fs", "Linux
    235      ext2fs", "ReiserFS", "JFS", "XFS", and "VSTa fs". *Note
    236      Filesystem::, for more information.
    237 
    238 Support automatic decompression
    239      Can decompress files which were compressed by `gzip'. This
    240      function is both automatic and transparent to the user (i.e. all
    241      functions operate upon the uncompressed contents of the specified
    242      files). This greatly reduces a file size and loading time, a
    243      particularly great benefit for floppies.(1) (*note
    244      Features-Footnote-1::)
    245 
    246      It is conceivable that some kernel modules should be loaded in a
    247      compressed state, so a different module-loading command can be
    248      specified to avoid uncompressing the modules.
    249 
    250 Access data on any installed device
    251      Support reading data from any or all floppies or hard disk(s)
    252      recognized by the BIOS, independent of the setting of the root
    253      device.
    254 
    255 Be independent of drive geometry translations
    256      Unlike many other boot loaders, GRUB makes the particular drive
    257      translation irrelevant. A drive installed and running with one
    258      translation may be converted to another translation without any
    259      adverse effects or changes in GRUB's configuration.
    260 
    261 Detect all installed RAM
    262      GRUB can generally find all the installed RAM on a PC-compatible
    263      machine. It uses an advanced BIOS query technique for finding all
    264      memory regions. As described on the Multiboot Specification (*note
    265      Multiboot Specification: (multiboot)Top.), not all kernels make
    266      use of this information, but GRUB provides it for those who do.
    267 
    268 Support Logical Block Address mode
    269      In traditional disk calls (called "CHS mode"), there is a geometry
    270      translation problem, that is, the BIOS cannot access over 1024
    271      cylinders, so the accessible space is limited to at least 508 MB
    272      and to at most 8GB. GRUB can't universally solve this problem, as
    273      there is no standard interface used in all machines. However,
    274      several newer machines have the new interface, Logical Block
    275      Address ("LBA") mode. GRUB automatically detects if LBA mode is
    276      available and uses it if available. In LBA mode, GRUB can access
    277      the entire disk.
    278 
    279 Support network booting
    280      GRUB is basically a disk-based boot loader but also has network
    281      support. You can load OS images from a network by using the "TFTP"
    282      protocol.
    283 
    284 Support remote terminals
    285      To support computers with no console, GRUB provides remote terminal
    286      support, so that you can control GRUB from a remote host. Only
    287      serial terminal support is implemented at the moment.
    288 
    289 
    290 File: grub.info,  Node: Features-Footnotes,  Up: Features
    291 
    292    (1) There are a few pathological cases where loading a very badly
    293 organized ELF kernel might take longer, but in practice this never
    294 happen.
    295 
    296 
    297 File: grub.info,  Node: Role of a boot loader,  Prev: Features,  Up: Introduction
    298 
    299 1.4 The role of a boot loader
    300 =============================
    301 
    302 The following is a quotation from Gordon Matzigkeit, a GRUB fanatic:
    303 
    304      Some people like to acknowledge both the operating system and
    305      kernel when they talk about their computers, so they might say
    306      they use "GNU/Linux" or "GNU/Hurd".  Other people seem to think
    307      that the kernel is the most important part of the system, so they
    308      like to call their GNU operating systems "Linux systems."
    309 
    310      I, personally, believe that this is a grave injustice, because the
    311      _boot loader_ is the most important software of all. I used to
    312      refer to the above systems as either "LILO"(1) (*note Role of a
    313      boot loader-Footnote-1::) or "GRUB" systems.
    314 
    315      Unfortunately, nobody ever understood what I was talking about;
    316      now I just use the word "GNU" as a pseudonym for GRUB.
    317 
    318      So, if you ever hear people talking about their alleged "GNU"
    319      systems, remember that they are actually paying homage to the best
    320      boot loader around... GRUB!
    321 
    322    We, the GRUB maintainers, do not (usually) encourage Gordon's level
    323 of fanaticism, but it helps to remember that boot loaders deserve
    324 recognition.  We hope that you enjoy using GNU GRUB as much as we did
    325 writing it.
    326 
    327 
    328 File: grub.info,  Node: Role of a boot loader-Footnotes,  Up: Role of a boot loader
    329 
    330    (1) The LInux LOader, a boot loader that everybody uses, but nobody
    331 likes.
    332 
    333 
    334 File: grub.info,  Node: Naming convention,  Next: Installation,  Prev: Introduction,  Up: Top
    335 
    336 2 Naming convention
    337 *******************
    338 
    339 The device syntax used in GRUB is a wee bit different from what you may
    340 have seen before in your operating system(s), and you need to know it so
    341 that you can specify a drive/partition.
    342 
    343    Look at the following examples and explanations:
    344 
    345      (fd0)
    346 
    347    First of all, GRUB requires that the device name be enclosed with
    348 `(' and `)'. The `fd' part means that it is a floppy disk. The number
    349 `0' is the drive number, which is counted from _zero_. This expression
    350 means that GRUB will use the whole floppy disk.
    351 
    352      (hd0,1)
    353 
    354    Here, `hd' means it is a hard disk drive. The first integer `0'
    355 indicates the drive number, that is, the first hard disk, while the
    356 second integer, `1', indicates the partition number (or the PC slice
    357 number in the BSD terminology). Once again, please note that the
    358 partition numbers are counted from _zero_, not from one. This
    359 expression means the second partition of the first hard disk drive. In
    360 this case, GRUB uses one partition of the disk, instead of the whole
    361 disk.
    362 
    363      (hd0,4)
    364 
    365    This specifies the first "extended partition" of the first hard disk
    366 drive. Note that the partition numbers for extended partitions are
    367 counted from `4', regardless of the actual number of primary partitions
    368 on your hard disk.
    369 
    370      (hd1,a)
    371 
    372    This means the BSD `a' partition of the second hard disk. If you
    373 need to specify which PC slice number should be used, use something
    374 like this: `(hd1,0,a)'. If the PC slice number is omitted, GRUB
    375 searches for the first PC slice which has a BSD `a' partition.
    376 
    377    Of course, to actually access the disks or partitions with GRUB, you
    378 need to use the device specification in a command, like `root (fd0)' or
    379 `unhide (hd0,2)'. To help you find out which number specifies a
    380 partition you want, the GRUB command-line (*note Command-line
    381 interface::) options have argument completion. This means that, for
    382 example, you only need to type
    383 
    384      root (
    385 
    386    followed by a <TAB>, and GRUB will display the list of drives,
    387 partitions, or file names. So it should be quite easy to determine the
    388 name of your target partition, even with minimal knowledge of the
    389 syntax.
    390 
    391    Note that GRUB does _not_ distinguish IDE from SCSI - it simply
    392 counts the drive numbers from zero, regardless of their type. Normally,
    393 any IDE drive number is less than any SCSI drive number, although that
    394 is not true if you change the boot sequence by swapping IDE and SCSI
    395 drives in your BIOS.
    396 
    397    Now the question is, how to specify a file? Again, consider an
    398 example:
    399 
    400      (hd0,0)/vmlinuz
    401 
    402    This specifies the file named `vmlinuz', found on the first
    403 partition of the first hard disk drive. Note that the argument
    404 completion works with file names, too.
    405 
    406    That was easy, admit it. Now read the next chapter, to find out how
    407 to actually install GRUB on your drive.
    408 
    409 
    410 File: grub.info,  Node: Installation,  Next: Booting,  Prev: Naming convention,  Up: Top
    411 
    412 3 Installation
    413 **************
    414 
    415 In order to install GRUB as your boot loader, you need to first install
    416 the GRUB system and utilities under your UNIX-like operating system
    417 (*note Obtaining and Building GRUB::). You can do this either from the
    418 source tarball, or as a package for your OS.
    419 
    420    After you have done that, you need to install the boot loader on a
    421 drive (floppy or hard disk). There are two ways of doing that - either
    422 using the utility `grub-install' (*note Invoking grub-install::) on a
    423 UNIX-like OS, or by running GRUB itself from a floppy. These are quite
    424 similar, however the utility might probe a wrong BIOS drive, so you
    425 should be careful.
    426 
    427    Also, if you install GRUB on a UNIX-like OS, please make sure that
    428 you have an emergency boot disk ready, so that you can rescue your
    429 computer if, by any chance, your hard drive becomes unusable
    430 (unbootable).
    431 
    432    GRUB comes with boot images, which are normally put in the directory
    433 `/usr/lib/grub/i386-pc'. If you do not use grub-install, then you need
    434 to copy the files `stage1', `stage2', and `*stage1_5' to the directory
    435 `/boot/grub', and run the `grub-set-default' (*note Invoking
    436 grub-set-default::) if you intend to use `default saved' (*note
    437 default::) in your configuration file. Hereafter, the directory where
    438 GRUB images are initially placed (normally `/usr/lib/grub/i386-pc')
    439 will be called the "image directory", and the directory where the boot
    440 loader needs to find them (usually `/boot/grub') will be called the
    441 "boot directory".
    442 
    443 * Menu:
    444 
    445 * Creating a GRUB boot floppy::
    446 * Installing GRUB natively::
    447 * Installing GRUB using grub-install::
    448 * Making a GRUB bootable CD-ROM::
    449 
    450 
    451 File: grub.info,  Node: Creating a GRUB boot floppy,  Next: Installing GRUB natively,  Up: Installation
    452 
    453 3.1 Creating a GRUB boot floppy
    454 ===============================
    455 
    456 To create a GRUB boot floppy, you need to take the files `stage1' and
    457 `stage2' from the image directory, and write them to the first and the
    458 second block of the floppy disk, respectively.
    459 
    460    *Caution:* This procedure will destroy any data currently stored on
    461 the floppy.
    462 
    463    On a UNIX-like operating system, that is done with the following
    464 commands:
    465 
    466      # cd /usr/lib/grub/i386-pc
    467      # dd if=stage1 of=/dev/fd0 bs=512 count=1
    468      1+0 records in
    469      1+0 records out
    470      # dd if=stage2 of=/dev/fd0 bs=512 seek=1
    471      153+1 records in
    472      153+1 records out
    473      #
    474 
    475    The device file name may be different. Consult the manual for your
    476 OS.
    477 
    478 
    479 File: grub.info,  Node: Installing GRUB natively,  Next: Installing GRUB using grub-install,  Prev: Creating a GRUB boot floppy,  Up: Installation
    480 
    481 3.2 Installing GRUB natively
    482 ============================
    483 
    484 *Caution:* Installing GRUB's stage1 in this manner will erase the
    485 normal boot-sector used by an OS.
    486 
    487    GRUB can currently boot GNU Mach, Linux, FreeBSD, NetBSD, and OpenBSD
    488 directly, so using it on a boot sector (the first sector of a
    489 partition) should be okay. But generally, it would be a good idea to
    490 back up the first sector of the partition on which you are installing
    491 GRUB's stage1. This isn't as important if you are installing GRUB on
    492 the first sector of a hard disk, since it's easy to reinitialize it
    493 (e.g. by running `FDISK /MBR' from DOS).
    494 
    495    If you decide to install GRUB in the native environment, which is
    496 definitely desirable, you'll need to create a GRUB boot disk, and
    497 reboot your computer with it. Otherwise, see *Note Installing GRUB
    498 using grub-install::.
    499 
    500    Once started, GRUB will show the command-line interface (*note
    501 Command-line interface::). First, set the GRUB's "root device"(1)
    502 (*note Installing GRUB natively-Footnote-1::) to the partition
    503 containing the boot directory, like this:
    504 
    505      grub> root (hd0,0)
    506 
    507    If you are not sure which partition actually holds this directory,
    508 use the command `find' (*note find::), like this:
    509 
    510      grub> find /boot/grub/stage1
    511 
    512    This will search for the file name `/boot/grub/stage1' and show the
    513 devices which contain the file.
    514 
    515    Once you've set the root device correctly, run the command `setup'
    516 (*note setup::):
    517 
    518      grub> setup (hd0)
    519 
    520    This command will install the GRUB boot loader on the Master Boot
    521 Record (MBR) of the first drive. If you want to put GRUB into the boot
    522 sector of a partition instead of putting it in the MBR, specify the
    523 partition into which you want to install GRUB:
    524 
    525      grub> setup (hd0,0)
    526 
    527    If you install GRUB into a partition or a drive other than the first
    528 one, you must chain-load GRUB from another boot loader. Refer to the
    529 manual for the boot loader to know how to chain-load GRUB.
    530 
    531    After using the setup command, you will boot into GRUB without the
    532 GRUB floppy. See the chapter *Note Booting:: to find out how to boot
    533 your operating systems from GRUB.
    534 
    535 
    536 File: grub.info,  Node: Installing GRUB natively-Footnotes,  Up: Installing GRUB natively
    537 
    538    (1) Note that GRUB's root device doesn't necessarily mean your OS's
    539 root partition; if you need to specify a root partition for your OS,
    540 add the argument into the command `kernel'.
    541 
    542 
    543 File: grub.info,  Node: Installing GRUB using grub-install,  Next: Making a GRUB bootable CD-ROM,  Prev: Installing GRUB natively,  Up: Installation
    544 
    545 3.3 Installing GRUB using grub-install
    546 ======================================
    547 
    548 *Caution:* This procedure is definitely less safe, because there are
    549 several ways in which your computer can become unbootable. For example,
    550 most operating systems don't tell GRUB how to map BIOS drives to OS
    551 devices correctly--GRUB merely "guesses" the mapping. This will succeed
    552 in most cases, but not always. Therefore, GRUB provides you with a map
    553 file called the "device map", which you must fix if it is wrong. *Note
    554 Device map::, for more details.
    555 
    556    If you still do want to install GRUB under a UNIX-like OS (such as
    557 GNU), invoke the program `grub-install' (*note Invoking grub-install::)
    558 as the superuser ("root").
    559 
    560    The usage is basically very simple. You only need to specify one
    561 argument to the program, namely, where to install the boot loader. The
    562 argument can be either a device file (like `/dev/hda') or a partition
    563 specified in GRUB's notation. For example, under Linux the following
    564 will install GRUB into the MBR of the first IDE disk:
    565 
    566      # grub-install /dev/hda
    567 
    568    Likewise, under GNU/Hurd, this has the same effect:
    569 
    570      # grub-install /dev/hd0
    571 
    572    If it is the first BIOS drive, this is the same as well:
    573 
    574      # grub-install '(hd0)'
    575 
    576    Or you can omit the parentheses:
    577 
    578      # grub-install hd0
    579 
    580    But all the above examples assume that GRUB should use images under
    581 the root directory. If you want GRUB to use images under a directory
    582 other than the root directory, you need to specify the option
    583 `--root-directory'. The typical usage is that you create a GRUB boot
    584 floppy with a filesystem. Here is an example:
    585 
    586      # mke2fs /dev/fd0
    587      # mount -t ext2 /dev/fd0 /mnt
    588      # grub-install --root-directory=/mnt fd0
    589      # umount /mnt
    590 
    591    Another example is when you have a separate boot partition which is
    592 mounted at `/boot'. Since GRUB is a boot loader, it doesn't know
    593 anything about mountpoints at all. Thus, you need to run `grub-install'
    594 like this:
    595 
    596      # grub-install --root-directory=/boot /dev/hda
    597 
    598    By the way, as noted above, it is quite difficult to guess BIOS
    599 drives correctly under a UNIX-like OS. Thus, `grub-install' will prompt
    600 you to check if it could really guess the correct mappings, after the
    601 installation. The format is defined in *Note Device map::. Please be
    602 quite careful. If the output is wrong, it is unlikely that your
    603 computer will be able to boot with no problem.
    604 
    605    Note that `grub-install' is actually just a shell script and the
    606 real task is done by the grub shell `grub' (*note Invoking the grub
    607 shell::). Therefore, you may run `grub' directly to install GRUB,
    608 without using `grub-install'. Don't do that, however, unless you are
    609 very familiar with the internals of GRUB. Installing a boot loader on a
    610 running OS may be extremely dangerous.
    611 
    612 
    613 File: grub.info,  Node: Making a GRUB bootable CD-ROM,  Prev: Installing GRUB using grub-install,  Up: Installation
    614 
    615 3.4 Making a GRUB bootable CD-ROM
    616 =================================
    617 
    618 GRUB supports the "no emulation mode" in the El Torito specification(1)
    619 (*note Making a GRUB bootable CD-ROM-Footnote-1::). This means that you
    620 can use the whole CD-ROM from GRUB and you don't have to make a floppy
    621 or hard disk image file, which can cause compatibility problems.
    622 
    623    For booting from a CD-ROM, GRUB uses a special Stage 2 called
    624 `stage2_eltorito'. The only GRUB files you need to have in your
    625 bootable CD-ROM are this `stage2_eltorito' and optionally a config file
    626 `menu.lst'. You don't need to use `stage1' or `stage2', because El
    627 Torito is quite different from the standard boot process.
    628 
    629    Here is an example of procedures to make a bootable CD-ROM image.
    630 First, make a top directory for the bootable image, say, `iso':
    631 
    632      $ mkdir iso
    633 
    634    Make a directory for GRUB:
    635 
    636      $ mkdir -p iso/boot/grub
    637 
    638    Copy the file `stage2_eltorito':
    639 
    640      $ cp /usr/lib/grub/i386-pc/stage2_eltorito iso/boot/grub
    641 
    642    If desired, make the config file `menu.lst' under `iso/boot/grub'
    643 (*note Configuration::), and copy any files and directories for the
    644 disc to the directory `iso/'.
    645 
    646    Finally, make a ISO9660 image file like this:
    647 
    648      $ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
    649          -boot-load-size 4 -boot-info-table -o grub.iso iso
    650 
    651    This produces a file named `grub.iso', which then can be burned into
    652 a CD (or a DVD).  `mkisofs' has already set up the disc to boot from
    653 the `boot/grub/stage2_eltorito' file, so there is no need to setup GRUB
    654 on the disc.  (Note that the `-boot-load-size 4' bit is required for
    655 compatibility with the BIOS on many older machines.)
    656 
    657    You can use the device `(cd)' to access a CD-ROM in your config
    658 file. This is not required; GRUB automatically sets the root device to
    659 `(cd)' when booted from a CD-ROM. It is only necessary to refer to
    660 `(cd)' if you want to access other drives as well.
    661 
    662 
    663 File: grub.info,  Node: Making a GRUB bootable CD-ROM-Footnotes,  Up: Making a GRUB bootable CD-ROM
    664 
    665    (1) El Torito is a specification for bootable CD using BIOS
    666 functions.
    667 
    668 
    669 File: grub.info,  Node: Booting,  Next: Configuration,  Prev: Installation,  Up: Top
    670 
    671 4 Booting
    672 *********
    673 
    674 GRUB can load Multiboot-compliant kernels in a consistent way, but for
    675 some free operating systems you need to use some OS-specific magic.
    676 
    677 * Menu:
    678 
    679 * General boot methods::        How to boot OSes with GRUB generally
    680 * OS-specific notes::           Notes on some operating systems
    681 * Making your system robust::   How to make your system robust
    682 
    683 
    684 File: grub.info,  Node: General boot methods,  Next: OS-specific notes,  Up: Booting
    685 
    686 4.1 How to boot operating systems
    687 =================================
    688 
    689 GRUB has two distinct boot methods. One of the two is to load an
    690 operating system directly, and the other is to chain-load another boot
    691 loader which then will load an operating system actually. Generally
    692 speaking, the former is more desirable, because you don't need to
    693 install or maintain other boot loaders and GRUB is flexible enough to
    694 load an operating system from an arbitrary disk/partition. However, the
    695 latter is sometimes required, since GRUB doesn't support all the
    696 existing operating systems natively.
    697 
    698 * Menu:
    699 
    700 * Loading an operating system directly::
    701 * Chain-loading::
    702 
    703 
    704 File: grub.info,  Node: Loading an operating system directly,  Next: Chain-loading,  Up: General boot methods
    705 
    706 4.1.1 How to boot an OS directly with GRUB
    707 ------------------------------------------
    708 
    709 Multiboot (*note Multiboot Specification: (multiboot)Top.) is the
    710 native format supported by GRUB.  For the sake of convenience, there is
    711 also support for Linux, FreeBSD, NetBSD and OpenBSD. If you want to
    712 boot other operating systems, you will have to chain-load them (*note
    713 Chain-loading::).
    714 
    715    Generally, GRUB can boot any Multiboot-compliant OS in the following
    716 steps:
    717 
    718   1. Set GRUB's root device to the drive where the OS images are stored
    719      with the command `root' (*note root::).
    720 
    721   2. Load the kernel image with the command `kernel' (*note kernel::).
    722 
    723   3. If you need modules, load them with the command `module' (*note
    724      module::) or `modulenounzip' (*note modulenounzip::).
    725 
    726   4. Run the command `boot' (*note boot::).
    727 
    728    Linux, FreeBSD, NetBSD and OpenBSD can be booted in a similar
    729 manner. You load a kernel image with the command `kernel' and then run
    730 the command `boot'. If the kernel requires some parameters, just append
    731 the parameters to `kernel', after the file name of the kernel. Also,
    732 please refer to *Note OS-specific notes::, for information on your
    733 OS-specific issues.
    734 
    735 
    736 File: grub.info,  Node: Chain-loading,  Prev: Loading an operating system directly,  Up: General boot methods
    737 
    738 4.1.2 Load another boot loader to boot unsupported operating systems
    739 --------------------------------------------------------------------
    740 
    741 If you want to boot an unsupported operating system (e.g. Windows 95),
    742 chain-load a boot loader for the operating system. Normally, the boot
    743 loader is embedded in the "boot sector" of the partition on which the
    744 operating system is installed.
    745 
    746   1. Set GRUB's root device to the partition by the command
    747      `rootnoverify' (*note rootnoverify::):
    748 
    749           grub> rootnoverify (hd0,0)
    750 
    751   2. Set the "active" flag in the partition using the command
    752      `makeactive'(1) (*note Chain-loading-Footnote-1::) (*note
    753      makeactive::):
    754 
    755           grub> makeactive
    756 
    757   3. Load the boot loader with the command `chainloader' (*note
    758      chainloader::):
    759 
    760           grub> chainloader +1
    761 
    762      `+1' indicates that GRUB should read one sector from the start of
    763      the partition. The complete description about this syntax can be
    764      found in *Note Block list syntax::.
    765 
    766   4. Run the command `boot' (*note boot::).
    767 
    768    However, DOS and Windows have some deficiencies, so you might have to
    769 use more complicated instructions. *Note DOS/Windows::, for more
    770 information.
    771 
    772 
    773 File: grub.info,  Node: Chain-loading-Footnotes,  Up: Chain-loading
    774 
    775    (1) This is not necessary for most of the modern operating systems.
    776 
    777 
    778 File: grub.info,  Node: OS-specific notes,  Next: Making your system robust,  Prev: General boot methods,  Up: Booting
    779 
    780 4.2 Some caveats on OS-specific issues
    781 ======================================
    782 
    783 Here, we describe some caveats on several operating systems.
    784 
    785 * Menu:
    786 
    787 * GNU/Hurd::
    788 * GNU/Linux::
    789 * FreeBSD::
    790 * NetBSD::
    791 * OpenBSD::
    792 * DOS/Windows::
    793 * SCO UnixWare::
    794 * QNX::
    795 
    796 
    797 File: grub.info,  Node: GNU/Hurd,  Next: GNU/Linux,  Up: OS-specific notes
    798 
    799 4.2.1 GNU/Hurd
    800 --------------
    801 
    802 Since GNU/Hurd is Multiboot-compliant, it is easy to boot it; there is
    803 nothing special about it. But do not forget that you have to specify a
    804 root partition to the kernel.
    805 
    806   1. Set GRUB's root device to the same drive as GNU/Hurd's. Probably
    807      the command `find /boot/gnumach' or similar can help you (*note
    808      find::).
    809 
    810   2. Load the kernel and the module, like this:
    811 
    812           grub> kernel /boot/gnumach root=hd0s1
    813           grub> module /boot/serverboot
    814 
    815   3. Run the command `boot' (*note boot::).
    816 
    817 
    818 File: grub.info,  Node: GNU/Linux,  Next: FreeBSD,  Prev: GNU/Hurd,  Up: OS-specific notes
    819 
    820 4.2.2 GNU/Linux
    821 ---------------
    822 
    823 It is relatively easy to boot GNU/Linux from GRUB, because it somewhat
    824 resembles to boot a Multiboot-compliant OS.
    825 
    826   1. Set GRUB's root device to the same drive as GNU/Linux's. Probably
    827      the command `find /vmlinuz' or similar can help you (*note find::).
    828 
    829   2. Load the kernel:
    830 
    831           grub> kernel /vmlinuz root=/dev/hda1
    832 
    833      If you need to specify some kernel parameters, just append them to
    834      the command. For example, to set `vga' to `ext', do this:
    835 
    836           grub> kernel /vmlinuz root=/dev/hda1 vga=ext
    837 
    838      See the documentation in the Linux source tree for complete
    839      information on the available options.
    840 
    841   3. If you use an initrd, execute the command `initrd' (*note
    842      initrd::) after `kernel':
    843 
    844           grub> initrd /initrd
    845 
    846   4. Finally, run the command `boot' (*note boot::).
    847 
    848    *Caution:* If you use an initrd and specify the `mem=' option to the
    849 kernel to let it use less than actual memory size, you will also have
    850 to specify the same memory size to GRUB. To let GRUB know the size, run
    851 the command `uppermem' _before_ loading the kernel. *Note uppermem::,
    852 for more information.
    853 
    854 
    855 File: grub.info,  Node: FreeBSD,  Next: NetBSD,  Prev: GNU/Linux,  Up: OS-specific notes
    856 
    857 4.2.3 FreeBSD
    858 -------------
    859 
    860 GRUB can load the kernel directly, either in ELF or a.out format. But
    861 this is not recommended, since FreeBSD's bootstrap interface sometimes
    862 changes heavily, so GRUB can't guarantee to pass kernel parameters
    863 correctly.
    864 
    865    Thus, we'd recommend loading the very flexible loader `/boot/loader'
    866 instead. See this example:
    867 
    868      grub> root (hd0,a)
    869      grub> kernel /boot/loader
    870      grub> boot
    871 
    872 
    873 File: grub.info,  Node: NetBSD,  Next: OpenBSD,  Prev: FreeBSD,  Up: OS-specific notes
    874 
    875 4.2.4 NetBSD
    876 ------------
    877 
    878 GRUB can load NetBSD a.out and ELF directly, follow these steps:
    879 
    880   1. Set GRUB's root device with `root' (*note root::).
    881 
    882   2. Load the kernel with `kernel' (*note kernel::). You should append
    883      the ugly option `--type=netbsd', if you want to load an ELF
    884      kernel, like this:
    885 
    886           grub> kernel --type=netbsd /netbsd-elf
    887 
    888   3. Run `boot' (*note boot::).
    889 
    890    For now, however, GRUB doesn't allow you to pass kernel parameters,
    891 so it may be better to chain-load it instead. For more information,
    892 please see *Note Chain-loading::.
    893 
    894 
    895 File: grub.info,  Node: OpenBSD,  Next: DOS/Windows,  Prev: NetBSD,  Up: OS-specific notes
    896 
    897 4.2.5 OpenBSD
    898 -------------
    899 
    900 The booting instruction is exactly the same as for NetBSD (*note
    901 NetBSD::).
    902 
    903 
    904 File: grub.info,  Node: DOS/Windows,  Next: SCO UnixWare,  Prev: OpenBSD,  Up: OS-specific notes
    905 
    906 4.2.6 DOS/Windows
    907 -----------------
    908 
    909 GRUB cannot boot DOS or Windows directly, so you must chain-load them
    910 (*note Chain-loading::). However, their boot loaders have some critical
    911 deficiencies, so it may not work to just chain-load them. To overcome
    912 the problems, GRUB provides you with two helper functions.
    913 
    914    If you have installed DOS (or Windows) on a non-first hard disk, you
    915 have to use the disk swapping technique, because that OS cannot boot
    916 from any disks but the first one. The workaround used in GRUB is the
    917 command `map' (*note map::), like this:
    918 
    919      grub> map (hd0) (hd1)
    920      grub> map (hd1) (hd0)
    921 
    922    This performs a "virtual" swap between your first and second hard
    923 drive.
    924 
    925    *Caution:* This is effective only if DOS (or Windows) uses BIOS to
    926 access the swapped disks. If that OS uses a special driver for the
    927 disks, this probably won't work.
    928 
    929    Another problem arises if you installed more than one set of
    930 DOS/Windows onto one disk, because they could be confused if there are
    931 more than one primary partitions for DOS/Windows. Certainly you should
    932 avoid doing this, but there is a solution if you do want to do so. Use
    933 the partition hiding/unhiding technique.
    934 
    935    If GRUB "hide"s a DOS (or Windows) partition (*note hide::), DOS (or
    936 Windows) will ignore the partition. If GRUB "unhide"s a DOS (or
    937 Windows) partition (*note unhide::), DOS (or Windows) will detect the
    938 partition. Thus, if you have installed DOS (or Windows) on the first
    939 and the second partition of the first hard disk, and you want to boot
    940 the copy on the first partition, do the following:
    941 
    942      grub> unhide (hd0,0)
    943      grub> hide (hd0,1)
    944      grub> rootnoverify (hd0,0)
    945      grub> chainloader +1
    946      grub> makeactive
    947      grub> boot
    948 
    949 
    950 File: grub.info,  Node: SCO UnixWare,  Next: QNX,  Prev: DOS/Windows,  Up: OS-specific notes
    951 
    952 4.2.7 SCO UnixWare
    953 ------------------
    954 
    955 It is known that the signature in the boot loader for SCO UnixWare is
    956 wrong, so you will have to specify the option `--force' to
    957 `chainloader' (*note chainloader::), like this:
    958 
    959      grub> rootnoverify (hd1,0)
    960      grub> chainloader --force +1
    961      grub> makeactive
    962      grub> boot
    963 
    964 
    965 File: grub.info,  Node: QNX,  Prev: SCO UnixWare,  Up: OS-specific notes
    966 
    967 4.2.8 QNX
    968 ---------
    969 
    970 QNX seems to use a bigger boot loader, so you need to boot it up, like
    971 this:
    972 
    973      grub> rootnoverify (hd1,1)
    974      grub> chainloader +4
    975      grub> boot
    976 
    977 
    978 File: grub.info,  Node: Making your system robust,  Prev: OS-specific notes,  Up: Booting
    979 
    980 4.3 How to make your system robust
    981 ==================================
    982 
    983 When you test a new kernel or a new OS, it is important to make sure
    984 that your computer can boot even if the new system is unbootable. This
    985 is crucial especially if you maintain servers or remote systems. To
    986 accomplish this goal, you need to set up two things:
    987 
    988   1. You must maintain a system which is always bootable. For instance,
    989      if you test a new kernel, you need to keep a working kernel in a
    990      different place. And, it would sometimes be very nice to even have
    991      a complete copy of a working system in a different partition or
    992      disk.
    993 
    994   2. You must direct GRUB to boot a working system when the new system
    995      fails. This is possible with the "fallback" system in GRUB.
    996 
    997    The former requirement is very specific to each OS, so this
    998 documentation does not cover that topic. It is better to consult some
    999 backup tools.
   1000 
   1001    So let's see the GRUB part. There are two possibilities: one of them
   1002 is quite simple but not very robust, and the other is a bit complex to
   1003 set up but probably the best solution to make sure that your system can
   1004 start as long as GRUB itself is bootable.
   1005 
   1006 * Menu:
   1007 
   1008 * Booting once-only::
   1009 * Booting fallback systems::
   1010 
   1011 
   1012 File: grub.info,  Node: Booting once-only,  Next: Booting fallback systems,  Up: Making your system robust
   1013 
   1014 4.3.1 Booting once-only
   1015 -----------------------
   1016 
   1017 You can teach GRUB to boot an entry only at next boot time. Suppose
   1018 that your have an old kernel `old_kernel' and a new kernel
   1019 `new_kernel'. You know that `old_kernel' can boot your system
   1020 correctly, and you want to test `new_kernel'.
   1021 
   1022    To ensure that your system will go back to the old kernel even if the
   1023 new kernel fails (e.g. it panics), you can specify that GRUB should try
   1024 the new kernel only once and boot the old kernel after that.
   1025 
   1026    First, modify your configuration file. Here is an example:
   1027 
   1028      default saved        # This is important!!!
   1029      timeout 10
   1030 
   1031      title the old kernel
   1032      root (hd0,0)
   1033      kernel /old_kernel
   1034      savedefault
   1035 
   1036      title the new kernel
   1037      root (hd0,0)
   1038      kernel /new_kernel
   1039      savedefault 0         # This is important!!!
   1040 
   1041    Note that this configuration file uses `default saved' (*note
   1042 default::) at the head and `savedefault 0' (*note savedefault::) in the
   1043 entry for the new kernel. This means that GRUB boots a saved entry by
   1044 default, and booting the entry for the new kernel saves `0' as the
   1045 saved entry.
   1046 
   1047    With this configuration file, after all, GRUB always tries to boot
   1048 the old kernel after it booted the new one, because `0' is the entry of
   1049 `the old kernel'.
   1050 
   1051    The next step is to tell GRUB to boot the new kernel at next boot
   1052 time. For this, execute `grub-set-default' (*note Invoking
   1053 grub-set-default::):
   1054 
   1055      # grub-set-default 1
   1056 
   1057    This command sets the saved entry to `1', that is, to the new kernel.
   1058 
   1059    This method is useful, but still not very robust, because GRUB stops
   1060 booting, if there is any error in the boot entry, such that the new
   1061 kernel has an invalid executable format. Thus, it it even better to use
   1062 the "fallback" mechanism of GRUB. Look at next subsection for this
   1063 feature.
   1064 
   1065 
   1066 File: grub.info,  Node: Booting fallback systems,  Prev: Booting once-only,  Up: Making your system robust
   1067 
   1068 4.3.2 Booting fallback systems
   1069 ------------------------------
   1070 
   1071 GRUB supports a fallback mechanism of booting one or more other entries
   1072 if a default boot entry fails. You can specify multiple fallback
   1073 entries if you wish.
   1074 
   1075    Suppose that you have three systems, `A', `B' and `C'. `A' is a
   1076 system which you want to boot by default. `B' is a backup system which
   1077 is supposed to boot safely. `C' is another backup system which is used
   1078 in case where `B' is broken.
   1079 
   1080    Then you may want GRUB to boot the first system which is bootable
   1081 among `A', `B' and `C'. A configuration file can be written in this way:
   1082 
   1083      default saved        # This is important!!!
   1084      timeout 10
   1085      fallback 1 2         # This is important!!!
   1086 
   1087      title A
   1088      root (hd0,0)
   1089      kernel /kernel
   1090      savedefault fallback # This is important!!!
   1091 
   1092      title B
   1093      root (hd1,0)
   1094      kernel /kernel
   1095      savedefault fallback # This is important!!!
   1096 
   1097      title C
   1098      root (hd2,0)
   1099      kernel /kernel
   1100      savedefault
   1101 
   1102    Note that `default saved' (*note default::), `fallback 1 2' and
   1103 `savedefault fallback' are used. GRUB will boot a saved entry by
   1104 default and save a fallback entry as next boot entry with this
   1105 configuration.
   1106 
   1107    When GRUB tries to boot `A', GRUB saves `1' as next boot entry,
   1108 because the command `fallback' specifies that `1' is the first fallback
   1109 entry. The entry `1' is `B', so GRUB will try to boot `B' at next boot
   1110 time.
   1111 
   1112    Likewise, when GRUB tries to boot `B', GRUB saves `2' as next boot
   1113 entry, because `fallback' specifies `2' as next fallback entry. This
   1114 makes sure that GRUB will boot `C' after booting `B'.
   1115 
   1116    It is noteworthy that GRUB uses fallback entries both when GRUB
   1117 itself fails in booting an entry and when `A' or `B' fails in starting
   1118 up your system. So this solution ensures that your system is started
   1119 even if GRUB cannot find your kernel or if your kernel panics.
   1120 
   1121    However, you need to run `grub-set-default' (*note Invoking
   1122 grub-set-default::) when `A' starts correctly or you fix `A' after it
   1123 crashes, since GRUB always sets next boot entry to a fallback entry.
   1124 You should run this command in a startup script such as `rc.local' to
   1125 boot `A' by default:
   1126 
   1127      # grub-set-default 0
   1128 
   1129    where `0' is the number of the boot entry for the system `A'.
   1130 
   1131    If you want to see what is current default entry, you can look at the
   1132 file `/boot/grub/default' (or `/grub/default' in some systems). Because
   1133 this file is plain-text, you can just `cat' this file. But it is
   1134 strongly recommended *not to modify this file directly*, because GRUB
   1135 may fail in saving a default entry in this file, if you change this
   1136 file in an unintended manner. Therefore, you should use
   1137 `grub-set-default' when you need to change the default entry.
   1138 
   1139 
   1140 File: grub.info,  Node: Configuration,  Next: Network,  Prev: Booting,  Up: Top
   1141 
   1142 5 Configuration
   1143 ***************
   1144 
   1145 You've probably noticed that you need to type several commands to boot
   1146 your OS. There's a solution to that - GRUB provides a menu interface
   1147 (*note Menu interface::) from which you can select an item (using arrow
   1148 keys) that will do everything to boot an OS.
   1149 
   1150    To enable the menu, you need a configuration file, `menu.lst' under
   1151 the boot directory. We'll analyze an example file.
   1152 
   1153    The file first contains some general settings, the menu interface
   1154 related options. You can put these commands (*note Menu-specific
   1155 commands::) before any of the items (starting with `title' (*note
   1156 title::)).
   1157 
   1158      #
   1159      # Sample boot menu configuration file
   1160      #
   1161 
   1162    As you may have guessed, these lines are comments. Lines starting
   1163 with a hash character (`#'), and blank lines, are ignored by GRUB.
   1164 
   1165      # By default, boot the first entry.
   1166      default 0
   1167 
   1168    The first entry (here, counting starts with number zero, not one!)
   1169 will be the default choice.
   1170 
   1171      # Boot automatically after 30 secs.
   1172      timeout 30
   1173 
   1174    As the comment says, GRUB will boot automatically in 30 seconds,
   1175 unless interrupted with a keypress.
   1176 
   1177      # Fallback to the second entry.
   1178      fallback 1
   1179 
   1180    If, for any reason, the default entry doesn't work, fall back to the
   1181 second one (this is rarely used, for obvious reasons).
   1182 
   1183    Note that the complete descriptions of these commands, which are menu
   1184 interface specific, can be found in *Note Menu-specific commands::.
   1185 Other descriptions can be found in *Note Commands::.
   1186 
   1187    Now, on to the actual OS definitions. You will see that each entry
   1188 begins with a special command, `title' (*note title::), and the action
   1189 is described after it. Note that there is no command `boot' (*note
   1190 boot::) at the  end of each item. That is because GRUB automatically
   1191 executes `boot' if it loads other commands successfully.
   1192 
   1193    The argument for the command `title' is used to display a short
   1194 title/description of the entry in the menu. Since `title' displays the
   1195 argument as is, you can write basically anything there.
   1196 
   1197      # For booting GNU/Hurd
   1198      title  GNU/Hurd
   1199      root   (hd0,0)
   1200      kernel /boot/gnumach.gz root=hd0s1
   1201      module /boot/serverboot.gz
   1202 
   1203    This boots GNU/Hurd from the first hard disk.
   1204 
   1205      # For booting GNU/Linux
   1206      title  GNU/Linux
   1207      kernel (hd1,0)/vmlinuz root=/dev/hdb1
   1208 
   1209    This boots GNU/Linux, but from the second hard disk.
   1210 
   1211      # For booting Mach (getting kernel from floppy)
   1212      title  Utah Mach4 multiboot
   1213      root   (hd0,2)
   1214      pause  Insert the diskette now^G!!
   1215      kernel (fd0)/boot/kernel root=hd0s3
   1216      module (fd0)/boot/bootstrap
   1217 
   1218    This boots Mach with a kernel on a floppy, but the root filesystem at
   1219 hd0s3. It also contains a `pause' line (*note pause::), which will
   1220 cause GRUB to display a prompt and delay, before actually executing the
   1221 rest of the commands and booting.
   1222 
   1223      # For booting FreeBSD
   1224      title  FreeBSD
   1225      root   (hd0,2,a)
   1226      kernel /boot/loader
   1227 
   1228    This item will boot FreeBSD kernel loaded from the `a' partition of
   1229 the third PC slice of the first hard disk.
   1230 
   1231      # For booting OS/2
   1232      title OS/2
   1233      root  (hd0,1)
   1234      makeactive
   1235      # chainload OS/2 bootloader from the first sector
   1236      chainloader +1
   1237      # This is similar to "chainload", but loads a specific file
   1238      #chainloader /boot/chain.os2
   1239 
   1240    This will boot OS/2, using a chain-loader (*note Chain-loading::).
   1241 
   1242      # For booting Windows NT or Windows95
   1243      title Windows NT / Windows 95 boot menu
   1244      root        (hd0,0)
   1245      makeactive
   1246      chainloader +1
   1247      # For loading DOS if Windows NT is installed
   1248      # chainload /bootsect.dos
   1249 
   1250    The same as the above, but for Windows.
   1251 
   1252      # For installing GRUB into the hard disk
   1253      title Install GRUB into the hard disk
   1254      root    (hd0,0)
   1255      setup   (hd0)
   1256 
   1257    This will just (re)install GRUB onto the hard disk.
   1258 
   1259      # Change the colors.
   1260      title Change the colors
   1261      color light-green/brown blink-red/blue
   1262 
   1263    In the last entry, the command `color' is used (*note color::), to
   1264 change the menu colors (try it!). This command is somewhat special,
   1265 because it can be used both in the command-line and in the menu. GRUB
   1266 has several such commands, see *Note General commands::.
   1267 
   1268    We hope that you now understand how to use the basic features of
   1269 GRUB. To learn more about GRUB, see the following chapters.
   1270 
   1271 
   1272 File: grub.info,  Node: Network,  Next: Serial terminal,  Prev: Configuration,  Up: Top
   1273 
   1274 6 Downloading OS images from a network
   1275 **************************************
   1276 
   1277 Although GRUB is a disk-based boot loader, it does provide network
   1278 support. To use the network support, you need to enable at least one
   1279 network driver in the GRUB build process. For more information please
   1280 see `netboot/README.netboot' in the source distribution.
   1281 
   1282 * Menu:
   1283 
   1284 * General usage of network support::
   1285 * Diskless::
   1286 
   1287 
   1288 File: grub.info,  Node: General usage of network support,  Next: Diskless,  Up: Network
   1289 
   1290 6.1 How to set up your network
   1291 ==============================
   1292 
   1293 GRUB requires a file server and optionally a server that will assign an
   1294 IP address to the machine on which GRUB is running. For the former, only
   1295 TFTP is supported at the moment. The latter is either BOOTP, DHCP or a
   1296 RARP server(1) (*note General usage of network support-Footnote-1::).
   1297 It is not necessary to run both the servers on one computer. How to
   1298 configure these servers is beyond the scope of this document, so please
   1299 refer to the manuals specific to those protocols/servers.
   1300 
   1301    If you decided to use a server to assign an IP address, set up the
   1302 server and run `bootp' (*note bootp::), `dhcp' (*note dhcp::) or `rarp'
   1303 (*note rarp::) for BOOTP, DHCP or RARP, respectively. Each command will
   1304 show an assigned IP address, a netmask, an IP address for your TFTP
   1305 server and a gateway. If any of the addresses is wrong or it causes an
   1306 error, probably the configuration of your servers isn't set up properly.
   1307 
   1308    Otherwise, run `ifconfig', like this:
   1309 
   1310      grub> ifconfig --address=192.168.110.23 --server=192.168.110.14
   1311 
   1312    You can also use `ifconfig' in conjuction with `bootp', `dhcp' or
   1313 `rarp' (e.g. to reassign the server address manually). *Note
   1314 ifconfig::, for more details.
   1315 
   1316    Finally, download your OS images from your network. The network can
   1317 be accessed using the network drive `(nd)'. Everything else is very
   1318 similar to the normal instructions (*note Booting::).
   1319 
   1320    Here is an example:
   1321 
   1322      grub> bootp
   1323      Probing... [NE*000]
   1324      NE2000 base ...
   1325      Address: 192.168.110.23    Netmask: 255.255.255.0
   1326      Server: 192.168.110.14     Gateway: 192.168.110.1
   1327 
   1328      grub> root (nd)
   1329      grub> kernel /tftproot/gnumach.gz root=sd0s1
   1330      grub> module /tftproot/serverboot.gz
   1331      grub> boot
   1332 
   1333 
   1334 File: grub.info,  Node: General usage of network support-Footnotes,  Up: General usage of network support
   1335 
   1336    (1) RARP is not advised, since it cannot serve much information
   1337 
   1338 
   1339 File: grub.info,  Node: Diskless,  Prev: General usage of network support,  Up: Network
   1340 
   1341 6.2 Booting from a network
   1342 ==========================
   1343 
   1344 It is sometimes very useful to boot from a network, especially when you
   1345 use a machine which has no local disk. In this case, you need to obtain
   1346 a kind of Net Boot ROM, such as a PXE ROM or a free software package
   1347 like Etherboot. Such a Boot ROM first boots the machine, sets up the
   1348 network card installed into the machine, and downloads a second stage
   1349 boot image from the network. Then, the second image will try to boot an
   1350 operating system actually from the network.
   1351 
   1352    GRUB provides two second stage images, `nbgrub' and `pxegrub' (*note
   1353 Images::). These images are the same as the normal Stage 2, except that
   1354 they set up a network automatically, and try to load a configuration
   1355 file from the network, if specified. The usage is very simple: If the
   1356 machine has a PXE ROM, use `pxegrub'. If the machine has an NBI loader
   1357 such as Etherboot, use `nbgrub'. There is no difference between them
   1358 except their formats. Since the way to load a second stage image you
   1359 want to use should be described in the manual on your Net Boot ROM,
   1360 please refer to the manual, for more information.
   1361 
   1362    However, there is one thing specific to GRUB. Namely, how to specify
   1363 a configuration file in a BOOTP/DHCP server. For now, GRUB uses the tag
   1364 `150', to get the name of a configuration file. The following is an
   1365 example with a BOOTP configuration:
   1366 
   1367      .allhost:hd=/tmp:bf=null:\
   1368              :ds=145.71.35.1 145.71.32.1:\
   1369              :sm=255.255.254.0:\
   1370              :gw=145.71.35.1:\
   1371              :sa=145.71.35.5:
   1372 
   1373      foo:ht=1:ha=63655d0334a7:ip=145.71.35.127:\
   1374              :bf=/nbgrub:\
   1375              :tc=.allhost:\
   1376              :T150="(nd)/tftpboot/menu.lst.foo":
   1377 
   1378    Note that you should specify the drive name `(nd)' in the name of
   1379 the configuration file. This is because you might change the root drive
   1380 before downloading the configuration from the TFTP server when the
   1381 preset menu feature is used (*note Preset Menu::).
   1382 
   1383    See the manual of your BOOTP/DHCP server for more information. The
   1384 exact syntax should differ a little from the example.
   1385 
   1386 
   1387 File: grub.info,  Node: Serial terminal,  Next: Preset Menu,  Prev: Network,  Up: Top
   1388 
   1389 7 Using GRUB via a serial line
   1390 ******************************
   1391 
   1392 This chapter describes how to use the serial terminal support in GRUB.
   1393 
   1394    If you have many computers or computers with no display/keyboard, it
   1395 could be very useful to control the computers through serial
   1396 communications. To connect one computer with another via a serial line,
   1397 you need to prepare a null-modem (cross) serial cable, and you may need
   1398 to have multiport serial boards, if your computer doesn't have extra
   1399 serial ports. In addition, a terminal emulator is also required, such as
   1400 minicom. Refer to a manual of your operating system, for more
   1401 information.
   1402 
   1403    As for GRUB, the instruction to set up a serial terminal is quite
   1404 simple. First of all, make sure that you haven't specified the option
   1405 `--disable-serial' to the configure script when you built your GRUB
   1406 images. If you get them in binary form, probably they have serial
   1407 terminal support already.
   1408 
   1409    Then, initialize your serial terminal after GRUB starts up. Here is
   1410 an example:
   1411 
   1412      grub> serial --unit=0 --speed=9600
   1413      grub> terminal serial
   1414 
   1415    The command `serial' initializes the serial unit 0 with the speed
   1416 9600bps. The serial unit 0 is usually called `COM1', so, if you want to
   1417 use COM2, you must specify `--unit=1' instead. This command accepts
   1418 many other options, so please refer to *Note serial::, for more details.
   1419 
   1420    The command `terminal' (*note terminal::) chooses which type of
   1421 terminal you want to use. In the case above, the terminal will be a
   1422 serial terminal, but you can also pass `console' to the command, as
   1423 `terminal serial console'. In this case, a terminal in which you press
   1424 any key will be selected as a GRUB terminal.
   1425 
   1426    However, note that GRUB assumes that your terminal emulator is
   1427 compatible with VT100 by default. This is true for most terminal
   1428 emulators nowadays, but you should pass the option `--dumb' to the
   1429 command if your terminal emulator is not VT100-compatible or implements
   1430 few VT100 escape sequences. If you specify this option then GRUB
   1431 provides you with an alternative menu interface, because the normal
   1432 menu requires several fancy features of your terminal.
   1433 
   1434 
   1435 File: grub.info,  Node: Preset Menu,  Next: Security,  Prev: Serial terminal,  Up: Top
   1436 
   1437 8 Embedding a configuration file into GRUB
   1438 ******************************************
   1439 
   1440 GRUB supports a "preset menu" which is to be always loaded before
   1441 starting. The preset menu feature is useful, for example, when your
   1442 computer has no console but a serial cable. In this case, it is
   1443 critical to set up the serial terminal as soon as possible, since you
   1444 cannot see any message until the serial terminal begins to work. So it
   1445 is good to run the commands `serial' (*note serial::) and `terminal'
   1446 (*note terminal::) before anything else at the start-up time.
   1447 
   1448    How the preset menu works is slightly complicated:
   1449 
   1450   1. GRUB checks if the preset menu feature is used, and loads the
   1451      preset menu, if available. This includes running commands and
   1452      reading boot entries, like an ordinary configuration file.
   1453 
   1454   2. GRUB checks if the configuration file is available. Note that this
   1455      check is performed *regardless of the existence of the preset
   1456      menu*. The configuration file is loaded even if the preset menu was
   1457      loaded.
   1458 
   1459   3. If the preset menu includes any boot entries, they are cleared when
   1460      the configuration file is loaded. It doesn't matter whether the
   1461      configuration file has any entries or no entry. The boot entries
   1462      in the preset menu are used only when GRUB fails in loading the
   1463      configuration file.
   1464 
   1465    To enable the preset menu feature, you must rebuild GRUB specifying a
   1466 file to the configure script with the option `--enable-preset-menu'.
   1467 The file has the same semantics as normal configuration files (*note
   1468 Configuration::).
   1469 
   1470    Another point you should take care is that the diskless support
   1471 (*note Diskless::) diverts the preset menu. Diskless images embed a
   1472 preset menu to execute the command `bootp' (*note bootp::)
   1473 automatically, unless you specify your own preset menu to the configure
   1474 script. This means that you must put commands to initialize a network in
   1475 the preset menu yourself, because diskless images don't set it up
   1476 implicitly, when you use the preset menu explicitly.
   1477 
   1478    Therefore, a typical preset menu used with diskless support would be
   1479 like this:
   1480 
   1481      # Set up the serial terminal, first of all.
   1482      serial --unit=0 --speed=19200
   1483      terminal --timeout=0 serial
   1484 
   1485      # Initialize the network.
   1486      dhcp
   1487 
   1488 
   1489 File: grub.info,  Node: Security,  Next: Images,  Prev: Preset Menu,  Up: Top
   1490 
   1491 9 Protecting your computer from cracking
   1492 ****************************************
   1493 
   1494 You may be interested in how to prevent ordinary users from doing
   1495 whatever they like, if you share your computer with other people. So
   1496 this chapter describes how to improve the security of GRUB.
   1497 
   1498    One thing which could be a security hole is that the user can do too
   1499 many things with GRUB, because GRUB allows one to modify its
   1500 configuration and run arbitrary commands at run-time. For example, the
   1501 user can even read `/etc/passwd' in the command-line interface by the
   1502 command `cat' (*note cat::). So it is necessary to disable all the
   1503 interactive operations.
   1504 
   1505    Thus, GRUB provides a "password" feature, so that only administrators
   1506 can start the interactive operations (i.e. editing menu entries and
   1507 entering the command-line interface). To use this feature, you need to
   1508 run the command `password' in your configuration file (*note
   1509 password::), like this:
   1510 
   1511      password --md5 PASSWORD
   1512 
   1513    If this is specified, GRUB disallows any interactive control, until
   1514 you press the key <p> and enter a correct password.  The option `--md5'
   1515 tells GRUB that `PASSWORD' is in MD5 format.  If it is omitted, GRUB
   1516 assumes the `PASSWORD' is in clear text.
   1517 
   1518    You can encrypt your password with the command `md5crypt' (*note
   1519 md5crypt::). For example, run the grub shell (*note Invoking the grub
   1520 shell::), and enter your password:
   1521 
   1522      grub> md5crypt
   1523      Password: **********
   1524      Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
   1525 
   1526    Then, cut and paste the encrypted password to your configuration
   1527 file.
   1528 
   1529    Also, you can specify an optional argument to `password'. See this
   1530 example:
   1531 
   1532      password PASSWORD /boot/grub/menu-admin.lst
   1533 
   1534    In this case, GRUB will load `/boot/grub/menu-admin.lst' as a
   1535 configuration file when you enter the valid password.
   1536 
   1537    Another thing which may be dangerous is that any user can choose any
   1538 menu entry. Usually, this wouldn't be problematic, but you might want to
   1539 permit only administrators to run some of your menu entries, such as an
   1540 entry for booting an insecure OS like DOS.
   1541 
   1542    GRUB provides the command `lock' (*note lock::). This command always
   1543 fails until you enter the valid password, so you can use it, like this:
   1544 
   1545      title Boot DOS
   1546      lock
   1547      rootnoverify (hd0,1)
   1548      makeactive
   1549      chainload +1
   1550 
   1551    You should insert `lock' right after `title', because any user can
   1552 execute commands in an entry until GRUB encounters `lock'.
   1553 
   1554    You can also use the command `password' instead of `lock'. In this
   1555 case the boot process will ask for the password and stop if it was
   1556 entered incorrectly.  Since the `password' takes its own PASSWORD
   1557 argument this is useful if you want different passwords for different
   1558 entries.
   1559 
   1560 
   1561 File: grub.info,  Node: Images,  Next: Filesystem,  Prev: Security,  Up: Top
   1562 
   1563 10 GRUB image files
   1564 *******************
   1565 
   1566 GRUB consists of several images: two essential stages, optional stages
   1567 called "Stage 1.5", one image for bootable CD-ROM, and two network boot
   1568 images. Here is a short overview of them. *Note Internals::, for more
   1569 details.
   1570 
   1571 `stage1'
   1572      This is an essential image used for booting up GRUB. Usually, this
   1573      is embedded in an MBR or the boot sector of a partition. Because a
   1574      PC boot sector is 512 bytes, the size of this image is exactly 512
   1575      bytes.
   1576 
   1577      All `stage1' must do is to load Stage 2 or Stage 1.5 from a local
   1578      disk. Because of the size restriction, `stage1' encodes the
   1579      location of Stage 2 (or Stage 1.5) in a block list format, so it
   1580      never understand any filesystem structure.
   1581 
   1582 `stage2'
   1583      This is the core image of GRUB. It does everything but booting up
   1584      itself. Usually, this is put in a filesystem, but that is not
   1585      required.
   1586 
   1587 `e2fs_stage1_5'
   1588 `fat_stage1_5'
   1589 `ffs_stage1_5'
   1590 `jfs_stage1_5'
   1591 `minix_stage1_5'
   1592 `reiserfs_stage1_5'
   1593 `vstafs_stage1_5'
   1594 `xfs_stage1_5'
   1595      These are called "Stage 1.5", because they serve as a bridge
   1596      between `stage1' and `stage2', that is to say, Stage 1.5 is loaded
   1597      by Stage 1 and Stage 1.5 loads Stage 2. The difference between
   1598      `stage1' and `*_stage1_5' is that the former doesn't understand
   1599      any filesystem while the latter understands one filesystem (e.g.
   1600      `e2fs_stage1_5' understands ext2fs). So you can move the Stage 2
   1601      image to another location safely, even after GRUB has been
   1602      installed.
   1603 
   1604      While Stage 2 cannot generally be embedded in a fixed area as the
   1605      size is so large, Stage 1.5 can be installed into the area right
   1606      after an MBR, or the boot loader area of a ReiserFS or a FFS.
   1607 
   1608 `stage2_eltorito'
   1609      This is a boot image for CD-ROMs using the "no emulation mode" in
   1610      El Torito specification. This is identical to Stage 2, except that
   1611      this boots up without Stage 1 and sets up a special drive `(cd)'.
   1612 
   1613 `nbgrub'
   1614      This is a network boot image for the Network Image Proposal used
   1615      by some network boot loaders, such as Etherboot. This is mostly
   1616      the same as Stage 2, but it also sets up a network and loads a
   1617      configuration file from the network.
   1618 
   1619 `pxegrub'
   1620      This is another network boot image for the Preboot Execution
   1621      Environment used by several Netboot ROMs. This is identical to
   1622      `nbgrub', except for the format.
   1623 
   1624 
   1625 File: grub.info,  Node: Filesystem,  Next: Interface,  Prev: Images,  Up: Top
   1626 
   1627 11 Filesystem syntax and semantics
   1628 **********************************
   1629 
   1630 GRUB uses a special syntax for specifying disk drives which can be
   1631 accessed by BIOS. Because of BIOS limitations, GRUB cannot distinguish
   1632 between IDE, ESDI, SCSI, or others. You must know yourself which BIOS
   1633 device is equivalent to which OS device. Normally, that will be clear if
   1634 you see the files in a device or use the command `find' (*note find::).
   1635 
   1636 * Menu:
   1637 
   1638 * Device syntax::               How to specify devices
   1639 * File name syntax::            How to specify files
   1640 * Block list syntax::           How to specify block lists
   1641 
   1642 
   1643 File: grub.info,  Node: Device syntax,  Next: File name syntax,  Up: Filesystem
   1644 
   1645 11.1 How to specify devices
   1646 ===========================
   1647 
   1648 The device syntax is like this:
   1649 
   1650      `(DEVICE[,PART-NUM][,BSD-SUBPART-LETTER])'
   1651 
   1652    `[]' means the parameter is optional. DEVICE should be either `fd'
   1653 or `hd' followed by a digit, like `fd0'.  But you can also set DEVICE
   1654 to a hexadecimal or a decimal number which is a BIOS drive number, so
   1655 the following are equivalent:
   1656 
   1657      (hd0)
   1658      (0x80)
   1659      (128)
   1660 
   1661    PART-NUM represents the partition number of DEVICE, starting from
   1662 zero for primary partitions and from four for extended partitions, and
   1663 BSD-SUBPART-LETTER represents the BSD disklabel subpartition, such as
   1664 `a' or `e'.
   1665 
   1666    A shortcut for specifying BSD subpartitions is
   1667 `(DEVICE,BSD-SUBPART-LETTER)', in this case, GRUB searches for the
   1668 first PC partition containing a BSD disklabel, then finds the
   1669 subpartition BSD-SUBPART-LETTER. Here is an example:
   1670 
   1671      (hd0,a)
   1672 
   1673    The syntax `(hd0)' represents using the entire disk (or the MBR when
   1674 installing GRUB), while the syntax `(hd0,0)' represents using the first
   1675 partition of the disk (or the boot sector of the partition when
   1676 installing GRUB).
   1677 
   1678    If you enabled the network support, the special drive, `(nd)', is
   1679 also available. Before using the network drive, you must initialize the
   1680 network. *Note Network::, for more information.
   1681 
   1682    If you boot GRUB from a CD-ROM, `(cd)' is available. *Note Making a
   1683 GRUB bootable CD-ROM::, for details.
   1684 
   1685 
   1686 File: grub.info,  Node: File name syntax,  Next: Block list syntax,  Prev: Device syntax,  Up: Filesystem
   1687 
   1688 11.2 How to specify files
   1689 =========================
   1690 
   1691 There are two ways to specify files, by "absolute file name" and by
   1692 "block list".
   1693 
   1694    An absolute file name resembles a Unix absolute file name, using `/'
   1695 for the directory separator (not `\' as in DOS). One example is
   1696 `(hd0,0)/boot/grub/menu.lst'. This means the file `/boot/grub/menu.lst'
   1697 in the first partition of the first hard disk. If you omit the device
   1698 name in an absolute file name, GRUB uses GRUB's "root device"
   1699 implicitly. So if you set the root device to, say, `(hd1,0)' by the
   1700 command `root' (*note root::), then `/boot/kernel' is the same as
   1701 `(hd1,0)/boot/kernel'.
   1702 
   1703 
   1704 File: grub.info,  Node: Block list syntax,  Prev: File name syntax,  Up: Filesystem
   1705 
   1706 11.3 How to specify block lists
   1707 ===============================
   1708 
   1709 A block list is used for specifying a file that doesn't appear in the
   1710 filesystem, like a chainloader. The syntax is
   1711 `[OFFSET]+LENGTH[,[OFFSET]+LENGTH]...'.  Here is an example:
   1712 
   1713      `0+100,200+1,300+300'
   1714 
   1715    This represents that GRUB should read blocks 0 through 99, block 200,
   1716 and blocks 300 through 599. If you omit an offset, then GRUB assumes
   1717 the offset is zero.
   1718 
   1719    Like the file name syntax (*note File name syntax::), if a blocklist
   1720 does not contain a device name, then GRUB uses GRUB's "root device". So
   1721 `(hd0,1)+1' is the same as `+1' when the root device is `(hd0,1)'.
   1722 
   1723 
   1724 File: grub.info,  Node: Interface,  Next: Commands,  Prev: Filesystem,  Up: Top
   1725 
   1726 12 GRUB's user interface
   1727 ************************
   1728 
   1729 GRUB has both a simple menu interface for choosing preset entries from a
   1730 configuration file, and a highly flexible command-line for performing
   1731 any desired combination of boot commands.
   1732 
   1733    GRUB looks for its configuration file as soon as it is loaded. If one
   1734 is found, then the full menu interface is activated using whatever
   1735 entries were found in the file. If you choose the "command-line" menu
   1736 option, or if the configuration file was not found, then GRUB drops to
   1737 the command-line interface.
   1738 
   1739 * Menu:
   1740 
   1741 * Command-line interface::      The flexible command-line interface
   1742 * Menu interface::              The simple menu interface
   1743 * Menu entry editor::           Editing a menu entry
   1744 * Hidden menu interface::       The hidden menu interface
   1745 
   1746 
   1747 File: grub.info,  Node: Command-line interface,  Next: Menu interface,  Up: Interface
   1748 
   1749 12.1 The flexible command-line interface
   1750 ========================================
   1751 
   1752 The command-line interface provides a prompt and after it an editable
   1753 text area much like a command-line in Unix or DOS. Each command is
   1754 immediately executed after it is entered(1) (*note Command-line
   1755 interface-Footnote-1::). The commands (*note Command-line and menu
   1756 entry commands::) are a subset of those available in the configuration
   1757 file, used with exactly the same syntax.
   1758 
   1759    Cursor movement and editing of the text on the line can be done via a
   1760 subset of the functions available in the Bash shell:
   1761 
   1762 <C-f>
   1763 <PC right key>
   1764      Move forward one character.
   1765 
   1766 <C-b>
   1767 <PC left key>
   1768      Move back one character.
   1769 
   1770 <C-a>
   1771 <HOME>
   1772      Move to the start of the line.
   1773 
   1774 <C-e>
   1775 <END>
   1776      Move the the end of the line.
   1777 
   1778 <C-d>
   1779 <DEL>
   1780      Delete the character underneath the cursor.
   1781 
   1782 <C-h>
   1783 <BS>
   1784      Delete the character to the left of the cursor.
   1785 
   1786 <C-k>
   1787      Kill the text from the current cursor position to the end of the
   1788      line.
   1789 
   1790 <C-u>
   1791      Kill backward from the cursor to the beginning of the line.
   1792 
   1793 <C-y>
   1794      Yank the killed text back into the buffer at the cursor.
   1795 
   1796 <C-p>
   1797 <PC up key>
   1798      Move up through the history list.
   1799 
   1800 <C-n>
   1801 <PC down key>
   1802      Move down through the history list.
   1803 
   1804    When typing commands interactively, if the cursor is within or before
   1805 the first word in the command-line, pressing the <TAB> key (or <C-i>)
   1806 will display a listing of the available commands, and if the cursor is
   1807 after the first word, the `<TAB>' will provide a completion listing of
   1808 disks, partitions, and file names depending on the context. Note that
   1809 to obtain a list of drives, one must open a parenthesis, as `root ('.
   1810 
   1811    Note that you cannot use the completion functionality in the TFTP
   1812 filesystem. This is because TFTP doesn't support file name listing for
   1813 the security.
   1814 
   1815 
   1816 File: grub.info,  Node: Command-line interface-Footnotes,  Up: Command-line interface
   1817 
   1818    (1) However, this behavior will be changed in the future version, in
   1819 a user-invisible way.
   1820 
   1821 
   1822 File: grub.info,  Node: Menu interface,  Next: Menu entry editor,  Prev: Command-line interface,  Up: Interface
   1823 
   1824 12.2 The simple menu interface
   1825 ==============================
   1826 
   1827 The menu interface is quite easy to use. Its commands are both
   1828 reasonably intuitive and described on screen.
   1829 
   1830    Basically, the menu interface provides a list of "boot entries" to
   1831 the user to choose from. Use the arrow keys to select the entry of
   1832 choice, then press <RET> to run it.  An optional timeout is available
   1833 to boot the default entry (the first one if not set), which is aborted
   1834 by pressing any key.
   1835 
   1836    Commands are available to enter a bare command-line by pressing <c>
   1837 (which operates exactly like the non-config-file version of GRUB, but
   1838 allows one to return to the menu if desired by pressing <ESC>) or to
   1839 edit any of the "boot entries" by pressing <e>.
   1840 
   1841    If you protect the menu interface with a password (*note Security::),
   1842 all you can do is choose an entry by pressing <RET>, or press <p> to
   1843 enter the password.
   1844 
   1845 
   1846 File: grub.info,  Node: Menu entry editor,  Next: Hidden menu interface,  Prev: Menu interface,  Up: Interface
   1847 
   1848 12.3 Editing a menu entry
   1849 =========================
   1850 
   1851 The menu entry editor looks much like the main menu interface, but the
   1852 lines in the menu are individual commands in the selected entry instead
   1853 of entry names.
   1854 
   1855    If an <ESC> is pressed in the editor, it aborts all the changes made
   1856 to the configuration entry and returns to the main menu interface.
   1857 
   1858    When a particular line is selected, the editor places the user in a
   1859 special version of the GRUB command-line to edit that line.  When the
   1860 user hits <RET>, GRUB replaces the line in question in the boot entry
   1861 with the changes (unless it was aborted via <ESC>, in which case the
   1862 changes are thrown away).
   1863 
   1864    If you want to add a new line to the menu entry, press <o> if adding
   1865 a line after the current line or press <O> if before the current line.
   1866 
   1867    To delete a line, hit the key <d>. Although GRUB unfortunately does
   1868 not support "undo", you can do almost the same thing by just returning
   1869 to the main menu.
   1870 
   1871 
   1872 File: grub.info,  Node: Hidden menu interface,  Prev: Menu entry editor,  Up: Interface
   1873 
   1874 12.4 The hidden menu interface
   1875 ==============================
   1876 
   1877 When your terminal is dumb or you request GRUB to hide the menu
   1878 interface explicitly with the command `hiddenmenu' (*note
   1879 hiddenmenu::), GRUB doesn't show the menu interface (*note Menu
   1880 interface::) and automatically boots the default entry, unless
   1881 interrupted by pressing <ESC>.
   1882 
   1883    When you interrupt the timeout and your terminal is dumb, GRUB falls
   1884 back to the command-line interface (*note Command-line interface::).
   1885 
   1886 
   1887 File: grub.info,  Node: Commands,  Next: Troubleshooting,  Prev: Interface,  Up: Top
   1888 
   1889 13 The list of available commands
   1890 *********************************
   1891 
   1892 In this chapter, we list all commands that are available in GRUB.
   1893 
   1894    Commands belong to different groups. A few can only be used in the
   1895 global section of the configuration file (or "menu"); most of them can
   1896 be entered on the command-line and can be used either anywhere in the
   1897 menu or specifically in the menu entries.
   1898 
   1899 * Menu:
   1900 
   1901 * Menu-specific commands::
   1902 * General commands::
   1903 * Command-line and menu entry commands::
   1904 
   1905 
   1906 File: grub.info,  Node: Menu-specific commands,  Next: General commands,  Up: Commands
   1907 
   1908 13.1 The list of commands for the menu only
   1909 ===========================================
   1910 
   1911 The semantics used in parsing the configuration file are the following:
   1912 
   1913    * The menu-specific commands have to be used before any others.
   1914 
   1915    * The files _must_ be in plain-text format.
   1916 
   1917    * `#' at the beginning of a line in a configuration file means it is
   1918      only a comment.
   1919 
   1920    * Options are separated by spaces.
   1921 
   1922    * All numbers can be either decimal or hexadecimal. A hexadecimal
   1923      number must be preceded by `0x', and is case-insensitive.
   1924 
   1925    * Extra options or text at the end of the line are ignored unless
   1926      otherwise specified.
   1927 
   1928    * Unrecognized commands are added to the current entry, except
   1929      before entries start, where they are ignored.
   1930 
   1931    These commands can only be used in the menu:
   1932 
   1933 * Menu:
   1934 
   1935 * default::                     Set the default entry
   1936 * fallback::                    Set the fallback entry
   1937 * hiddenmenu::                  Hide the menu interface
   1938 * timeout::                     Set the timeout
   1939 * title::                       Start a menu entry
   1940 
   1941 
   1942 File: grub.info,  Node: default,  Next: fallback,  Up: Menu-specific commands
   1943 
   1944 13.1.1 default
   1945 --------------
   1946 
   1947  -- Command: default num
   1948      Set the default entry to the entry number NUM. Numbering starts
   1949      from 0, and the entry number 0 is the default if the command is not
   1950      used.
   1951 
   1952      You can specify `saved' instead of a number. In this case, the
   1953      default entry is the entry saved with the command `savedefault'.
   1954      *Note savedefault::, for more information.
   1955 
   1956 
   1957 File: grub.info,  Node: fallback,  Next: hiddenmenu,  Prev: default,  Up: Menu-specific commands
   1958 
   1959 13.1.2 fallback
   1960 ---------------
   1961 
   1962  -- Command: fallback num...
   1963      Go into unattended boot mode: if the default boot entry has any
   1964      errors, instead of waiting for the user to do something,
   1965      immediately start over using the NUM entry (same numbering as the
   1966      `default' command (*note default::)). This obviously won't help if
   1967      the machine was rebooted by a kernel that GRUB loaded. You can
   1968      specify multiple fallback entry numbers.
   1969 
   1970 
   1971 File: grub.info,  Node: hiddenmenu,  Next: timeout,  Prev: fallback,  Up: Menu-specific commands
   1972 
   1973 13.1.3 hiddenmenu
   1974 -----------------
   1975 
   1976  -- Command: hiddenmenu
   1977      Don't display the menu. If the command is used, no menu will be
   1978      displayed on the control terminal, and the default entry will be
   1979      booted after the timeout expired. The user can still request the
   1980      menu to be displayed by pressing <ESC> before the timeout expires.
   1981      See also *Note Hidden menu interface::.
   1982 
   1983 
   1984 File: grub.info,  Node: timeout,  Next: title,  Prev: hiddenmenu,  Up: Menu-specific commands
   1985 
   1986 13.1.4 timeout
   1987 --------------
   1988 
   1989  -- Command: timeout sec
   1990      Set a timeout, in SEC seconds, before automatically booting the
   1991      default entry (normally the first entry defined).
   1992 
   1993 
   1994 File: grub.info,  Node: title,  Prev: timeout,  Up: Menu-specific commands
   1995 
   1996 13.1.5 title
   1997 ------------
   1998 
   1999  -- Command: title name ...
   2000      Start a new boot entry, and set its name to the contents of the
   2001      rest of the line, starting with the first non-space character.
   2002 
   2003 
   2004 File: grub.info,  Node: General commands,  Next: Command-line and menu entry commands,  Prev: Menu-specific commands,  Up: Commands
   2005 
   2006 13.2 The list of general commands
   2007 =================================
   2008 
   2009 Commands usable anywhere in the menu and in the command-line.
   2010 
   2011 * Menu:
   2012 
   2013 * bootp::                       Initialize a network device via BOOTP
   2014 * color::                       Color the menu interface
   2015 * device::                      Specify a file as a drive
   2016 * dhcp::                        Initialize a network device via DHCP
   2017 * hide::                        Hide a partition
   2018 * ifconfig::                    Configure a network device manually
   2019 * pager::                       Change the state of the internal pager
   2020 * partnew::                     Make a primary partition
   2021 * parttype::                    Change the type of a partition
   2022 * password::                    Set a password for the menu interface
   2023 * rarp::                        Initialize a network device via RARP
   2024 * serial::                      Set up a serial device
   2025 * setkey::                      Configure the key map
   2026 * terminal::                    Choose a terminal
   2027 * terminfo::                    Define escape sequences for a terminal
   2028 * tftpserver::                  Specify a TFTP server
   2029 * unhide::                      Unhide a partition
   2030 
   2031 
   2032 File: grub.info,  Node: bootp,  Next: color,  Up: General commands
   2033 
   2034 13.2.1 bootp
   2035 ------------
   2036 
   2037  -- Command: bootp [`--with-configfile']
   2038      Initialize a network device via the "BOOTP" protocol. This command
   2039      is only available if GRUB is compiled with netboot support. See
   2040      also *Note Network::.
   2041 
   2042      If you specify `--with-configfile' to this command, GRUB will
   2043      fetch and load a configuration file specified by your BOOTP server
   2044      with the vendor tag `150'.
   2045 
   2046 
   2047 File: grub.info,  Node: color,  Next: device,  Prev: bootp,  Up: General commands
   2048 
   2049 13.2.2 color
   2050 ------------
   2051 
   2052  -- Command: color normal [highlight]
   2053      Change the menu colors. The color NORMAL is used for most lines in
   2054      the menu (*note Menu interface::), and the color HIGHLIGHT is used
   2055      to highlight the line where the cursor points. If you omit
   2056      HIGHLIGHT, then the inverted color of NORMAL is used for the
   2057      highlighted line. The format of a color is
   2058      `FOREGROUND/BACKGROUND'. FOREGROUND and BACKGROUND are symbolic
   2059      color names. A symbolic color name must be one of these:
   2060 
   2061         * black
   2062 
   2063         * blue
   2064 
   2065         * green
   2066 
   2067         * cyan
   2068 
   2069         * red
   2070 
   2071         * magenta
   2072 
   2073         * brown
   2074 
   2075         * light-gray
   2076 
   2077           *These below can be specified only for the foreground.*
   2078 
   2079         * dark-gray
   2080 
   2081         * light-blue
   2082 
   2083         * light-green
   2084 
   2085         * light-cyan
   2086 
   2087         * light-red
   2088 
   2089         * light-magenta
   2090 
   2091         * yellow
   2092 
   2093         * white
   2094 
   2095      But only the first eight names can be used for BACKGROUND. You can
   2096      prefix `blink-' to FOREGROUND if you want a blinking foreground
   2097      color.
   2098 
   2099      This command can be used in the configuration file and on the
   2100      command line, so you may write something like this in your
   2101      configuration file:
   2102 
   2103           # Set default colors.
   2104           color light-gray/blue black/light-gray
   2105 
   2106           # Change the colors.
   2107           title OS-BS like
   2108           color magenta/blue black/magenta
   2109 
   2110 
   2111 File: grub.info,  Node: device,  Next: dhcp,  Prev: color,  Up: General commands
   2112 
   2113 13.2.3 device
   2114 -------------
   2115 
   2116  -- Command: device drive file
   2117      In the grub shell, specify the file FILE as the actual drive for a
   2118      BIOS drive DRIVE. You can use this command to create a disk image,
   2119      and/or to fix the drives guessed by GRUB when GRUB fails to
   2120      determine them correctly, like this:
   2121 
   2122           grub> device (fd0) /floppy-image
   2123           grub> device (hd0) /dev/sd0
   2124 
   2125      This command can be used only in the grub shell (*note Invoking
   2126      the grub shell::).
   2127 
   2128 
   2129 File: grub.info,  Node: dhcp,  Next: hide,  Prev: device,  Up: General commands
   2130 
   2131 13.2.4 dhcp
   2132 -----------
   2133 
   2134  -- Command: dhcp [-with-configfile]
   2135      Initialize a network device via the "DHCP" protocol. Currently,
   2136      this command is just an alias for `bootp', since the two protocols
   2137      are very similar. This command is only available if GRUB is
   2138      compiled with netboot support. See also *Note Network::.
   2139 
   2140      If you specify `--with-configfile' to this command, GRUB will
   2141      fetch and load a configuration file specified by your DHCP server
   2142      with the vendor tag `150'.
   2143 
   2144 
   2145 File: grub.info,  Node: hide,  Next: ifconfig,  Prev: dhcp,  Up: General commands
   2146 
   2147 13.2.5 hide
   2148 -----------
   2149 
   2150  -- Command: hide partition
   2151      Hide the partition PARTITION by setting the "hidden" bit in its
   2152      partition type code. This is useful only when booting DOS or
   2153      Windows and multiple primary FAT partitions exist in one disk. See
   2154      also *Note DOS/Windows::.
   2155 
   2156 
   2157 File: grub.info,  Node: ifconfig,  Next: pager,  Prev: hide,  Up: General commands
   2158 
   2159 13.2.6 ifconfig
   2160 ---------------
   2161 
   2162  -- Command: ifconfig [`--server=server'] [`--gateway=gateway']
   2163           [`--mask=mask'] [`--address=address']
   2164      Configure the IP address, the netmask, the gateway, and the server
   2165      address of a network device manually. The values must be in dotted
   2166      decimal format, like `192.168.11.178'. The order of the options is
   2167      not important. This command shows current network configuration,
   2168      if no option is specified. See also *Note Network::.
   2169 
   2170 
   2171 File: grub.info,  Node: pager,  Next: partnew,  Prev: ifconfig,  Up: General commands
   2172 
   2173 13.2.7 pager
   2174 ------------
   2175 
   2176  -- Command: pager [flag]
   2177      Toggle or set the state of the internal pager. If FLAG is `on',
   2178      the internal pager is enabled. If FLAG is `off', it is disabled.
   2179      If no argument is given, the state is toggled.
   2180 
   2181 
   2182 File: grub.info,  Node: partnew,  Next: parttype,  Prev: pager,  Up: General commands
   2183 
   2184 13.2.8 partnew
   2185 --------------
   2186 
   2187  -- Command: partnew part type from len
   2188      Create a new primary partition. PART is a partition specification
   2189      in GRUB syntax (*note Naming convention::); TYPE is the partition
   2190      type and must be a number in the range `0-0xff'; FROM is the
   2191      starting address and LEN is the length, both in sector units.
   2192 
   2193 
   2194 File: grub.info,  Node: parttype,  Next: password,  Prev: partnew,  Up: General commands
   2195 
   2196 13.2.9 parttype
   2197 ---------------
   2198 
   2199  -- Command: parttype part type
   2200      Change the type of an existing partition.  PART is a partition
   2201      specification in GRUB syntax (*note Naming convention::); TYPE is
   2202      the new partition type and must be a number in the range 0-0xff.
   2203 
   2204 
   2205 File: grub.info,  Node: password,  Next: rarp,  Prev: parttype,  Up: General commands
   2206 
   2207 13.2.10 password
   2208 ----------------
   2209 
   2210  -- Command: password [`--md5'] passwd [new-config-file]
   2211      If used in the first section of a menu file, disable all
   2212      interactive editing control (menu entry editor and command-line)
   2213      and entries protected by the command `lock'. If the password
   2214      PASSWD is entered, it loads the NEW-CONFIG-FILE as a new config
   2215      file and restarts the GRUB Stage 2, if NEW-CONFIG-FILE is
   2216      specified. Otherwise, GRUB will just unlock the privileged
   2217      instructions.  You can also use this command in the script
   2218      section, in which case it will ask for the password, before
   2219      continuing.  The option `--md5' tells GRUB that PASSWD is
   2220      encrypted with `md5crypt' (*note md5crypt::).
   2221 
   2222 
   2223 File: grub.info,  Node: rarp,  Next: serial,  Prev: password,  Up: General commands
   2224 
   2225 13.2.11 rarp
   2226 ------------
   2227 
   2228  -- Command: rarp
   2229      Initialize a network device via the "RARP" protocol.  This command
   2230      is only available if GRUB is compiled with netboot support. See
   2231      also *Note Network::.
   2232 
   2233 
   2234 File: grub.info,  Node: serial,  Next: setkey,  Prev: rarp,  Up: General commands
   2235 
   2236 13.2.12 serial
   2237 --------------
   2238 
   2239  -- Command: serial [`--unit=unit'] [`--port=port'] [`--speed=speed']
   2240           [`--word=word'] [`--parity=parity'] [`--stop=stop']
   2241           [`--device=dev']
   2242      Initialize a serial device. UNIT is a number in the range 0-3
   2243      specifying which serial port to use; default is 0, which
   2244      corresponds to the port often called COM1. PORT is the I/O port
   2245      where the UART is to be found; if specified it takes precedence
   2246      over UNIT.  SPEED is the transmission speed; default is 9600. WORD
   2247      and STOP are the number of data bits and stop bits. Data bits must
   2248      be in the range 5-8 and stop bits must be 1 or 2. Default is 8 data
   2249      bits and one stop bit. PARITY is one of `no', `odd', `even' and
   2250      defaults to `no'. The option `--device' can only be used in the
   2251      grub shell and is used to specify the tty device to be used in the
   2252      host operating system (*note Invoking the grub shell::).
   2253 
   2254      The serial port is not used as a communication channel unless the
   2255      `terminal' command is used (*note terminal::).
   2256 
   2257      This command is only available if GRUB is compiled with serial
   2258      support. See also *Note Serial terminal::.
   2259 
   2260 
   2261 File: grub.info,  Node: setkey,  Next: terminal,  Prev: serial,  Up: General commands
   2262 
   2263 13.2.13 setkey
   2264 --------------
   2265 
   2266  -- Command: setkey [to_key from_key]
   2267      Change the keyboard map. The key FROM_KEY is mapped to the key
   2268      TO_KEY. If no argument is specified, reset key mappings. Note that
   2269      this command _does not_ exchange the keys. If you want to exchange
   2270      the keys, run this command again with the arguments exchanged,
   2271      like this:
   2272 
   2273           grub> setkey capslock control
   2274           grub> setkey control capslock
   2275 
   2276      A key must be an alphabet letter, a digit, or one of these symbols:
   2277      `escape', `exclam', `at', `numbersign', `dollar', `percent',
   2278      `caret', `ampersand', `asterisk', `parenleft', `parenright',
   2279      `minus', `underscore', `equal', `plus', `backspace', `tab',
   2280      `bracketleft', `braceleft', `bracketright', `braceright', `enter',
   2281      `control', `semicolon', `colon', `quote', `doublequote',
   2282      `backquote', `tilde', `shift', `backslash', `bar', `comma',
   2283      `less', `period', `greater', `slash', `question', `alt', `space',
   2284      `capslock', `FX' (`X' is a digit), and `delete'. This table
   2285      describes to which character each of the symbols corresponds:
   2286 
   2287     `exclam'
   2288           `!'
   2289 
   2290     `at'
   2291           `@'
   2292 
   2293     `numbersign'
   2294           `#'
   2295 
   2296     `dollar'
   2297           `$'
   2298 
   2299     `percent'
   2300           `%'
   2301 
   2302     `caret'
   2303           `^'
   2304 
   2305     `ampersand'
   2306           `&'
   2307 
   2308     `asterisk'
   2309           `*'
   2310 
   2311     `parenleft'
   2312           `('
   2313 
   2314     `parenright'
   2315           `)'
   2316 
   2317     `minus'
   2318           `-'
   2319 
   2320     `underscore'
   2321           `_'
   2322 
   2323     `equal'
   2324           `='
   2325 
   2326     `plus'
   2327           `+'
   2328 
   2329     `bracketleft'
   2330           `['
   2331 
   2332     `braceleft'
   2333           `{'
   2334 
   2335     `bracketright'
   2336           `]'
   2337 
   2338     `braceright'
   2339           `}'
   2340 
   2341     `semicolon'
   2342           `;'
   2343 
   2344     `colon'
   2345           `:'
   2346 
   2347     `quote'
   2348           `''
   2349 
   2350     `doublequote'
   2351           `"'
   2352 
   2353     `backquote'
   2354           ``'
   2355 
   2356     `tilde'
   2357           `~'
   2358 
   2359     `backslash'
   2360           `\'
   2361 
   2362     `bar'
   2363           `|'
   2364 
   2365     `comma'
   2366           `,'
   2367 
   2368     `less'
   2369           `<'
   2370 
   2371     `period'
   2372           `.'
   2373 
   2374     `greater'
   2375           `>'
   2376 
   2377     `slash'
   2378           `/'
   2379 
   2380     `question'
   2381           `?'
   2382 
   2383     `space'
   2384           ` '
   2385 
   2386 
   2387 File: grub.info,  Node: terminal,  Next: terminfo,  Prev: setkey,  Up: General commands
   2388 
   2389 13.2.14 terminal
   2390 ----------------
   2391 
   2392  -- Command: terminal [`--dumb'] [`--no-echo'] [`--no-edit']
   2393           [`--timeout=secs'] [`--lines=lines'] [`--silent'] [`console']
   2394           [`serial'] [`hercules']
   2395      Select a terminal for user interaction. The terminal is assumed to
   2396      be VT100-compatible unless `--dumb' is specified. If both
   2397      `console' and `serial' are specified, then GRUB will use the one
   2398      where a key is entered first or the first when the timeout
   2399      expires. If neither are specified, the current setting is
   2400      reported. This command is only available if GRUB is compiled with
   2401      serial support. See also *Note Serial terminal::.
   2402 
   2403      This may not make sense for most users, but GRUB supports Hercules
   2404      console as well. Hercules console is usable like the ordinary
   2405      console, and the usage is quite similar to that for serial
   2406      terminals: specify `hercules' as the argument.
   2407 
   2408      The option `--lines' defines the number of lines in your terminal,
   2409      and it is used for the internal pager function. If you don't
   2410      specify this option, the number is assumed as 24.
   2411 
   2412      The option `--silent' suppresses the message to prompt you to hit
   2413      any key. This might be useful if your system has no terminal
   2414      device.
   2415 
   2416      The option `--no-echo' has GRUB not to echo back input characters.
   2417      This implies the option `--no-edit'.
   2418 
   2419      The option `--no-edit' disables the BASH-like editing feature.
   2420 
   2421 
   2422 File: grub.info,  Node: terminfo,  Next: tftpserver,  Prev: terminal,  Up: General commands
   2423 
   2424 13.2.15 terminfo
   2425 ----------------
   2426 
   2427  -- Command: terminfo `--name=name' `--cursor-address=seq'
   2428           [`--clear-screen=seq'] [`--enter-standout-mode=seq']
   2429           [`--exit-standout-mode=seq']
   2430      Define the capabilities of your terminal. Use this command to
   2431      define escape sequences, if it is not vt100-compatible. You may
   2432      use `\e' for <ESC> and `^X' for a control character.
   2433 
   2434      You can use the utility `grub-terminfo' to generate appropriate
   2435      arguments to this command. *Note Invoking grub-terminfo::.
   2436 
   2437      If no option is specified, the current settings are printed.
   2438 
   2439 
   2440 File: grub.info,  Node: tftpserver,  Next: unhide,  Prev: terminfo,  Up: General commands
   2441 
   2442 13.2.16 tftpserver
   2443 ------------------
   2444 
   2445  -- Command: tftpserver ipaddr
   2446      *Caution:* This command exists only for backward compatibility.
   2447      Use `ifconfig' (*note ifconfig::) instead.
   2448 
   2449      Override a TFTP server address returned by a BOOTP/DHCP/RARP
   2450      server. The argument IPADDR must be in dotted decimal format, like
   2451      `192.168.0.15'.  This command is only available if GRUB is compiled
   2452      with netboot support. See also *Note Network::.
   2453 
   2454 
   2455 File: grub.info,  Node: unhide,  Prev: tftpserver,  Up: General commands
   2456 
   2457 13.2.17 unhide
   2458 --------------
   2459 
   2460  -- Command: unhide partition
   2461      Unhide the partition PARTITION by clearing the "hidden" bit in its
   2462      partition type code. This is useful only when booting DOS or
   2463      Windows and multiple primary partitions exist on one disk. See also
   2464      *Note DOS/Windows::.
   2465 
   2466 
   2467 File: grub.info,  Node: Command-line and menu entry commands,  Prev: General commands,  Up: Commands
   2468 
   2469 13.3 The list of command-line and menu entry commands
   2470 =====================================================
   2471 
   2472 These commands are usable in the command-line and in menu entries.  If
   2473 you forget a command, you can run the command `help' (*note help::).
   2474 
   2475 * Menu:
   2476 
   2477 * blocklist::                   Get the block list notation of a file
   2478 * boot::                        Start up your operating system
   2479 * cat::                         Show the contents of a file
   2480 * chainloader::                 Chain-load another boot loader
   2481 * cmp::                         Compare two files
   2482 * configfile::                  Load a configuration file
   2483 * debug::                       Toggle the debug flag
   2484 * displayapm::                  Display APM information
   2485 * displaymem::                  Display memory configuration
   2486 * embed::                       Embed Stage 1.5
   2487 * find::                        Find a file
   2488 * fstest::                      Test a filesystem
   2489 * geometry::                    Manipulate the geometry of a drive
   2490 * halt::                        Shut down your computer
   2491 * help::                        Show help messages
   2492 * impsprobe::                   Probe SMP
   2493 * initrd::                      Load an initrd
   2494 * install::                     Install GRUB
   2495 * ioprobe::                     Probe I/O ports used for a drive
   2496 * kernel::                      Load a kernel
   2497 * lock::                        Lock a menu entry
   2498 * makeactive::                  Make a partition active
   2499 * map::                         Map a drive to another
   2500 * md5crypt::                    Encrypt a password in MD5 format
   2501 * module::                      Load a module
   2502 * modulenounzip::               Load a module without decompression
   2503 * pause::                       Wait for a key press
   2504 * quit::                        Exit from the grub shell
   2505 * reboot::                      Reboot your computer
   2506 * read::                        Read data from memory
   2507 * root::                        Set GRUB's root device
   2508 * rootnoverify::                Set GRUB's root device without mounting
   2509 * savedefault::                 Save current entry as the default entry
   2510 * setup::                       Set up GRUB's installation automatically
   2511 * testload::                    Load a file for testing a filesystem
   2512 * testvbe::                     Test VESA BIOS EXTENSION
   2513 * uppermem::                    Set the upper memory size
   2514 * vbeprobe::                    Probe VESA BIOS EXTENSION
   2515 
   2516 
   2517 File: grub.info,  Node: blocklist,  Next: boot,  Up: Command-line and menu entry commands
   2518 
   2519 13.3.1 blocklist
   2520 ----------------
   2521 
   2522  -- Command: blocklist file
   2523      Print the block list notation of the file FILE. *Note Block list
   2524      syntax::.
   2525 
   2526 
   2527 File: grub.info,  Node: boot,  Next: cat,  Prev: blocklist,  Up: Command-line and menu entry commands
   2528 
   2529 13.3.2 boot
   2530 -----------
   2531 
   2532  -- Command: boot
   2533      Boot the OS or chain-loader which has been loaded. Only necessary
   2534      if running the fully interactive command-line (it is implicit at
   2535      the end of a menu entry).
   2536 
   2537 
   2538 File: grub.info,  Node: cat,  Next: chainloader,  Prev: boot,  Up: Command-line and menu entry commands
   2539 
   2540 13.3.3 cat
   2541 ----------
   2542 
   2543  -- Command: cat file
   2544      Display the contents of the file FILE. This command may be useful
   2545      to remind you of your OS's root partition:
   2546 
   2547           grub> cat /etc/fstab
   2548 
   2549 
   2550 File: grub.info,  Node: chainloader,  Next: cmp,  Prev: cat,  Up: Command-line and menu entry commands
   2551 
   2552 13.3.4 chainloader
   2553 ------------------
   2554 
   2555  -- Command: chainloader [`--force'] file
   2556      Load FILE as a chain-loader. Like any other file loaded by the
   2557      filesystem code, it can use the blocklist notation to grab the
   2558      first sector of the current partition with `+1'. If you specify the
   2559      option `--force', then load FILE forcibly, whether it has a
   2560      correct signature or not. This is required when you want to load a
   2561      defective boot loader, such as SCO UnixWare 7.1 (*note SCO
   2562      UnixWare::).
   2563 
   2564 
   2565 File: grub.info,  Node: cmp,  Next: configfile,  Prev: chainloader,  Up: Command-line and menu entry commands
   2566 
   2567 13.3.5 cmp
   2568 ----------
   2569 
   2570  -- Command: cmp file1 file2
   2571      Compare the file FILE1 with the file FILE2. If they differ in
   2572      size, print the sizes like this:
   2573 
   2574           Differ in size: 0x1234 [foo], 0x4321 [bar]
   2575 
   2576      If the sizes are equal but the bytes at an offset differ, then
   2577      print the bytes like this:
   2578 
   2579           Differ at the offset 777: 0xbe [foo], 0xef [bar]
   2580 
   2581      If they are completely identical, nothing will be printed.
   2582 
   2583 
   2584 File: grub.info,  Node: configfile,  Next: debug,  Prev: cmp,  Up: Command-line and menu entry commands
   2585 
   2586 13.3.6 configfile
   2587 -----------------
   2588 
   2589  -- Command: configfile file
   2590      Load FILE as a configuration file.
   2591 
   2592 
   2593 File: grub.info,  Node: debug,  Next: displayapm,  Prev: configfile,  Up: Command-line and menu entry commands
   2594 
   2595 13.3.7 debug
   2596 ------------
   2597 
   2598  -- Command: debug
   2599      Toggle debug mode (by default it is off). When debug mode is on,
   2600      some extra messages are printed to show disk activity. This global
   2601      debug flag is mainly useful for GRUB developers when testing new
   2602      code.
   2603 
   2604 
   2605 File: grub.info,  Node: displayapm,  Next: displaymem,  Prev: debug,  Up: Command-line and menu entry commands
   2606 
   2607 13.3.8 displayapm
   2608 -----------------
   2609 
   2610  -- Command: displayapm
   2611      Display APM BIOS information.
   2612 
   2613 
   2614 File: grub.info,  Node: displaymem,  Next: embed,  Prev: displayapm,  Up: Command-line and menu entry commands
   2615 
   2616 13.3.9 displaymem
   2617 -----------------
   2618 
   2619  -- Command: displaymem
   2620      Display what GRUB thinks the system address space map of the
   2621      machine is, including all regions of physical RAM installed. GRUB's
   2622      "upper/lower memory" display uses the standard BIOS interface for
   2623      the available memory in the first megabyte, or "lower memory", and
   2624      a synthesized number from various BIOS interfaces of the memory
   2625      starting at 1MB and going up to the first chipset hole for "upper
   2626      memory" (the standard PC "upper memory" interface is limited to
   2627      reporting a maximum of 64MB).
   2628 
   2629 
   2630 File: grub.info,  Node: embed,  Next: find,  Prev: displaymem,  Up: Command-line and menu entry commands
   2631 
   2632 13.3.10 embed
   2633 -------------
   2634 
   2635  -- Command: embed stage1_5 device
   2636      Embed the Stage 1.5 STAGE1_5 in the sectors after the MBR if
   2637      DEVICE is a drive, or in the "boot loader" area if DEVICE is a FFS
   2638      partition or a ReiserFS partition.(1) (*note embed-Footnote-1::)
   2639      Print the number of sectors which STAGE1_5 occupies, if successful.
   2640 
   2641      Usually, you don't need to run this command directly. *Note
   2642      setup::.
   2643 
   2644 
   2645 File: grub.info,  Node: embed-Footnotes,  Up: embed
   2646 
   2647    (1) The latter feature has not been implemented yet.
   2648 
   2649 
   2650 File: grub.info,  Node: find,  Next: fstest,  Prev: embed,  Up: Command-line and menu entry commands
   2651 
   2652 13.3.11 find
   2653 ------------
   2654 
   2655  -- Command: find filename
   2656      Search for the file name FILENAME in all mountable partitions and
   2657      print the list of the devices which contain the file. The file
   2658      name FILENAME should be an absolute file name like
   2659      `/boot/grub/stage1'.
   2660 
   2661 
   2662 File: grub.info,  Node: fstest,  Next: geometry,  Prev: find,  Up: Command-line and menu entry commands
   2663 
   2664 13.3.12 fstest
   2665 --------------
   2666 
   2667  -- Command: fstest
   2668      Toggle filesystem test mode.  Filesystem test mode, when turned
   2669      on, prints out data corresponding to all the device reads and what
   2670      values are being sent to the low-level routines. The format is
   2671      `<PARTITION-OFFSET-SECTOR, BYTE-OFFSET, BYTE-LENGTH>' for
   2672      high-level reads inside a partition, and `[DISK-OFFSET-SECTOR]'
   2673      for low-level sector requests from the disk.  Filesystem test mode
   2674      is turned off by any use of the `install' (*note install::) or
   2675      `testload' (*note testload::) commands.
   2676 
   2677 
   2678 File: grub.info,  Node: geometry,  Next: halt,  Prev: fstest,  Up: Command-line and menu entry commands
   2679 
   2680 13.3.13 geometry
   2681 ----------------
   2682 
   2683  -- Command: geometry drive [cylinder head sector [total_sector]]
   2684      Print the information for the drive DRIVE. In the grub shell, you
   2685      can set the geometry of the drive arbitrarily. The number of
   2686      cylinders, the number of heads, the number of sectors and the
   2687      number of total sectors are set to CYLINDER, HEAD, SECTOR and
   2688      TOTAL_SECTOR, respectively. If you omit TOTAL_SECTOR, then it will
   2689      be calculated based on the C/H/S values automatically.
   2690 
   2691 
   2692 File: grub.info,  Node: halt,  Next: help,  Prev: geometry,  Up: Command-line and menu entry commands
   2693 
   2694 13.3.14 halt
   2695 ------------
   2696 
   2697  -- Command: halt `--no-apm'
   2698      The command halts the computer. If the `--no-apm' option is
   2699      specified, no APM BIOS call is performed. Otherwise, the computer
   2700      is shut down using APM.
   2701 
   2702 
   2703 File: grub.info,  Node: help,  Next: impsprobe,  Prev: halt,  Up: Command-line and menu entry commands
   2704 
   2705 13.3.15 help
   2706 ------------
   2707 
   2708  -- Command: help `--all' [pattern ...]
   2709      Display helpful information about builtin commands. If you do not
   2710      specify PATTERN, this command shows short descriptions of most of
   2711      available commands. If you specify the option `--all' to this
   2712      command, short descriptions of rarely used commands (such as *Note
   2713      testload::) are displayed as well.
   2714 
   2715      If you specify any PATTERNS, it displays longer information about
   2716      each of the commands which match those PATTERNS.
   2717 
   2718 
   2719 File: grub.info,  Node: impsprobe,  Next: initrd,  Prev: help,  Up: Command-line and menu entry commands
   2720 
   2721 13.3.16 impsprobe
   2722 -----------------
   2723 
   2724  -- Command: impsprobe
   2725      Probe the Intel Multiprocessor Specification 1.1 or 1.4
   2726      configuration table and boot the various CPUs which are found into
   2727      a tight loop. This command can be used only in the Stage 2, but
   2728      not in the grub shell.
   2729 
   2730 
   2731 File: grub.info,  Node: initrd,  Next: install,  Prev: impsprobe,  Up: Command-line and menu entry commands
   2732 
   2733 13.3.17 initrd
   2734 --------------
   2735 
   2736  -- Command: initrd file ...
   2737      Load an initial ramdisk for a Linux format boot image and set the
   2738      appropriate parameters in the Linux setup area in memory. See also
   2739      *Note GNU/Linux::.
   2740 
   2741 
   2742 File: grub.info,  Node: install,  Next: ioprobe,  Prev: initrd,  Up: Command-line and menu entry commands
   2743 
   2744 13.3.18 install
   2745 ---------------
   2746 
   2747  -- Command: install [`--force-lba'] [`--stage2=os_stage2_file']
   2748           stage1_file [`d'] dest_dev stage2_file [addr] [`p']
   2749           [config_file] [real_config_file]
   2750      This command is fairly complex, and you should not use this command
   2751      unless you are familiar with GRUB. Use `setup' (*note setup::)
   2752      instead.
   2753 
   2754      In short, it will perform a full install presuming the Stage 2 or
   2755      Stage 1.5(1) (*note install-Footnote-1::) is in its final install
   2756      location.
   2757 
   2758      In slightly more detail, it will load STAGE1_FILE, validate that
   2759      it is a GRUB Stage 1 of the right version number, install in it a
   2760      blocklist for loading STAGE2_FILE as a Stage 2. If the option `d'
   2761      is present, the Stage 1 will always look for the actual disk
   2762      STAGE2_FILE was installed on, rather than using the booting drive.
   2763      The Stage 2 will be loaded at address ADDR, which must be `0x8000'
   2764      for a true Stage 2, and `0x2000' for a Stage 1.5. If ADDR is not
   2765      present, GRUB will determine the address automatically. It then
   2766      writes the completed Stage 1 to the first block of the device
   2767      DEST_DEV. If the options `p' or CONFIG_FILE are present, then it
   2768      reads the first block of stage2, modifies it with the values of
   2769      the partition STAGE2_FILE was found on (for `p') or places the
   2770      string CONFIG_FILE into the area telling the stage2 where to look
   2771      for a configuration file at boot time. Likewise, if
   2772      REAL_CONFIG_FILE is present and STAGE2_FILE is a Stage 1.5, then
   2773      the Stage 2 CONFIG_FILE is patched with the configuration file
   2774      name REAL_CONFIG_FILE. This command preserves the DOS BPB (and for
   2775      hard disks, the partition table) of the sector the Stage 1 is to
   2776      be installed into.
   2777 
   2778      *Caution:* Several buggy BIOSes don't pass a booting drive
   2779      properly when booting from a hard disk drive. Therefore, you will
   2780      unfortunately have to specify the option `d', whether your Stage2
   2781      resides at the booting drive or not, if you have such a BIOS. We
   2782      know these are defective in this way:
   2783 
   2784 
   2785           Fujitsu LifeBook 400 BIOS version 31J0103A
   2786 
   2787 
   2788           HP Vectra XU 6/200 BIOS version GG.06.11
   2789 
   2790      *Caution2:* A number of BIOSes don't return a correct LBA support
   2791      bitmap even if they do have the support. So GRUB provides a
   2792      solution to ignore the wrong bitmap, that is, the option
   2793      `--force-lba'. Don't use this option if you know that your BIOS
   2794      doesn't have LBA support.
   2795 
   2796      *Caution3:* You must specify the option `--stage2' in the grub
   2797      shell, if you cannot unmount the filesystem where your stage2 file
   2798      resides. The argument should be the file name in your operating
   2799      system.
   2800 
   2801 
   2802 File: grub.info,  Node: install-Footnotes,  Up: install
   2803 
   2804    (1) They're loaded the same way, so we will refer to the Stage 1.5
   2805 as a Stage 2 from now on.
   2806 
   2807 
   2808 File: grub.info,  Node: ioprobe,  Next: kernel,  Prev: install,  Up: Command-line and menu entry commands
   2809 
   2810 13.3.19 ioprobe
   2811 ---------------
   2812 
   2813  -- Command: ioprobe drive
   2814      Probe I/O ports used for the drive DRIVE. This command will list
   2815      the I/O ports on the screen. For technical information, *Note
   2816      Internals::.
   2817 
   2818 
   2819 File: grub.info,  Node: kernel,  Next: lock,  Prev: ioprobe,  Up: Command-line and menu entry commands
   2820 
   2821 13.3.20 kernel
   2822 --------------
   2823 
   2824  -- Command: kernel [`--type=type'] [`--no-mem-option'] file ...
   2825      Attempt to load the primary boot image (Multiboot a.out or ELF,
   2826      Linux zImage or bzImage, FreeBSD a.out, NetBSD a.out, etc.) from
   2827      FILE. The rest of the line is passed verbatim as the "kernel
   2828      command-line". Any modules must be reloaded after using this
   2829      command.
   2830 
   2831      This command also accepts the option `--type' so that you can
   2832      specify the kernel type of FILE explicitly. The argument TYPE must
   2833      be one of these: `netbsd', `freebsd', `openbsd', `linux',
   2834      `biglinux', and `multiboot'. However, you need to specify it only
   2835      if you want to load a NetBSD ELF kernel, because GRUB can
   2836      automatically determine a kernel type in the other cases, quite
   2837      safely.
   2838 
   2839      The option `--no-mem-option' is effective only for Linux. If the
   2840      option is specified, GRUB doesn't pass the option `mem=' to the
   2841      kernel.  This option is implied for Linux kernels 2.4.18 and newer.
   2842 
   2843 
   2844 File: grub.info,  Node: lock,  Next: makeactive,  Prev: kernel,  Up: Command-line and menu entry commands
   2845 
   2846 13.3.21 lock
   2847 ------------
   2848 
   2849  -- Command: lock
   2850      Prevent normal users from executing arbitrary menu entries. You
   2851      must use the command `password' if you really want this command to
   2852      be useful (*note password::).
   2853 
   2854      This command is used in a menu, as shown in this example:
   2855 
   2856           title This entry is too dangerous to be executed by normal users
   2857           lock
   2858           root (hd0,a)
   2859           kernel /no-security-os
   2860 
   2861      See also *Note Security::.
   2862 
   2863 
   2864 File: grub.info,  Node: makeactive,  Next: map,  Prev: lock,  Up: Command-line and menu entry commands
   2865 
   2866 13.3.22 makeactive
   2867 ------------------
   2868 
   2869  -- Command: makeactive
   2870      Set the active partition on the root disk to GRUB's root device.
   2871      This command is limited to _primary_ PC partitions on a hard disk.
   2872 
   2873 
   2874 File: grub.info,  Node: map,  Next: md5crypt,  Prev: makeactive,  Up: Command-line and menu entry commands
   2875 
   2876 13.3.23 map
   2877 -----------
   2878 
   2879  -- Command: map to_drive from_drive
   2880      Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary
   2881      when you chain-load some operating systems, such as DOS, if such
   2882      an OS resides at a non-first drive. Here is an example:
   2883 
   2884           grub> map (hd0) (hd1)
   2885           grub> map (hd1) (hd0)
   2886 
   2887      The example exchanges the order between the first hard disk and the
   2888      second hard disk. See also *Note DOS/Windows::.
   2889 
   2890 
   2891 File: grub.info,  Node: md5crypt,  Next: module,  Prev: map,  Up: Command-line and menu entry commands
   2892 
   2893 13.3.24 md5crypt
   2894 ----------------
   2895 
   2896  -- Command: md5crypt
   2897      Prompt to enter a password, and encrypt it in MD5 format. The
   2898      encrypted password can be used with the command `password' (*note
   2899      password::). See also *Note Security::.
   2900 
   2901 
   2902 File: grub.info,  Node: module,  Next: modulenounzip,  Prev: md5crypt,  Up: Command-line and menu entry commands
   2903 
   2904 13.3.25 module
   2905 --------------
   2906 
   2907  -- Command: module file ...
   2908      Load a boot module FILE for a Multiboot format boot image (no
   2909      interpretation of the file contents are made, so the user of this
   2910      command must know what the kernel in question expects). The rest
   2911      of the line is passed as the "module command-line", like the
   2912      `kernel' command. You must load a Multiboot kernel image before
   2913      loading any module. See also *Note modulenounzip::.
   2914 
   2915 
   2916 File: grub.info,  Node: modulenounzip,  Next: pause,  Prev: module,  Up: Command-line and menu entry commands
   2917 
   2918 13.3.26 modulenounzip
   2919 ---------------------
   2920 
   2921  -- Command: modulenounzip file ...
   2922      The same as `module' (*note module::), except that automatic
   2923      decompression is disabled.
   2924 
   2925 
   2926 File: grub.info,  Node: pause,  Next: quit,  Prev: modulenounzip,  Up: Command-line and menu entry commands
   2927 
   2928 13.3.27 pause
   2929 -------------
   2930 
   2931  -- Command: pause message ...
   2932      Print the MESSAGE, then wait until a key is pressed. Note that
   2933      placing <^G> (ASCII code 7) in the message will cause the speaker
   2934      to emit the standard beep sound, which is useful when prompting
   2935      the user to change floppies.
   2936 
   2937 
   2938 File: grub.info,  Node: quit,  Next: reboot,  Prev: pause,  Up: Command-line and menu entry commands
   2939 
   2940 13.3.28 quit
   2941 ------------
   2942 
   2943  -- Command: quit
   2944      Exit from the grub shell `grub' (*note Invoking the grub shell::).
   2945      This command can be used only in the grub shell.
   2946 
   2947 
   2948 File: grub.info,  Node: reboot,  Next: read,  Prev: quit,  Up: Command-line and menu entry commands
   2949 
   2950 13.3.29 reboot
   2951 --------------
   2952 
   2953  -- Command: reboot
   2954      Reboot the computer.
   2955 
   2956 
   2957 File: grub.info,  Node: read,  Next: root,  Prev: reboot,  Up: Command-line and menu entry commands
   2958 
   2959 13.3.30 read
   2960 ------------
   2961 
   2962  -- Command: read addr
   2963      Read a 32-bit value from memory at address ADDR and display it in
   2964      hex format.
   2965 
   2966 
   2967 File: grub.info,  Node: root,  Next: rootnoverify,  Prev: read,  Up: Command-line and menu entry commands
   2968 
   2969 13.3.31 root
   2970 ------------
   2971 
   2972  -- Command: root device [hdbias]
   2973      Set the current "root device" to the device DEVICE, then attempt
   2974      to mount it to get the partition size (for passing the partition
   2975      descriptor in `ES:ESI', used by some chain-loaded boot loaders),
   2976      the BSD drive-type (for booting BSD kernels using their native
   2977      boot format), and correctly determine the PC partition where a BSD
   2978      sub-partition is located. The optional HDBIAS parameter is a
   2979      number to tell a BSD kernel how many BIOS drive numbers are on
   2980      controllers before the current one. For example, if there is an
   2981      IDE disk and a SCSI disk, and your FreeBSD root partition is on
   2982      the SCSI disk, then use a `1' for HDBIAS.
   2983 
   2984      See also *Note rootnoverify::.
   2985 
   2986 
   2987 File: grub.info,  Node: rootnoverify,  Next: savedefault,  Prev: root,  Up: Command-line and menu entry commands
   2988 
   2989 13.3.32 rootnoverify
   2990 --------------------
   2991 
   2992  -- Command: rootnoverify device [hdbias]
   2993      Similar to `root' (*note root::), but don't attempt to mount the
   2994      partition. This is useful for when an OS is outside of the area of
   2995      the disk that GRUB can read, but setting the correct root device
   2996      is still desired. Note that the items mentioned in `root' above
   2997      which derived from attempting the mount will _not_ work correctly.
   2998 
   2999 
   3000 File: grub.info,  Node: savedefault,  Next: setup,  Prev: rootnoverify,  Up: Command-line and menu entry commands
   3001 
   3002 13.3.33 savedefault
   3003 -------------------
   3004 
   3005  -- Command: savedefault num
   3006      Save the current menu entry or NUM if specified as a default
   3007      entry. Here is an example:
   3008 
   3009           default saved
   3010           timeout 10
   3011 
   3012           title GNU/Linux
   3013           root (hd0,0)
   3014           kernel /boot/vmlinuz root=/dev/sda1 vga=ext
   3015           initrd /boot/initrd
   3016           savedefault
   3017 
   3018           title FreeBSD
   3019           root (hd0,a)
   3020           kernel /boot/loader
   3021           savedefault
   3022 
   3023      With this configuration, GRUB will choose the entry booted
   3024      previously as the default entry.
   3025 
   3026      You can specify `fallback' instead of a number. Then, next
   3027      fallback entry is saved. Next fallback entry is chosen from
   3028      fallback entries. Normally, this will be the first entry in
   3029      fallback ones.
   3030 
   3031      See also *Note default:: and *Note Invoking grub-set-default::.
   3032 
   3033 
   3034 File: grub.info,  Node: setup,  Next: testload,  Prev: savedefault,  Up: Command-line and menu entry commands
   3035 
   3036 13.3.34 setup
   3037 -------------
   3038 
   3039  -- Command: setup [`--force-lba'] [`--stage2=os_stage2_file']
   3040           [`--prefix=dir'] install_device [image_device]
   3041      Set up the installation of GRUB automatically. This command uses
   3042      the more flexible command `install' (*note install::) in the
   3043      backend and installs GRUB into the device INSTALL_DEVICE. If
   3044      IMAGE_DEVICE is specified, then find the GRUB images (*note
   3045      Images::) in the device IMAGE_DEVICE, otherwise use the current
   3046      "root device", which can be set by the command `root'. If
   3047      INSTALL_DEVICE is a hard disk, then embed a Stage 1.5 in the disk
   3048      if possible.
   3049 
   3050      The option `--prefix' specifies the directory under which GRUB
   3051      images are put. If it is not specified, GRUB automatically
   3052      searches them in `/boot/grub' and `/grub'.
   3053 
   3054      The options `--force-lba' and `--stage2' are just passed to
   3055      `install' if specified. *Note install::, for more information.
   3056 
   3057 
   3058 File: grub.info,  Node: testload,  Next: testvbe,  Prev: setup,  Up: Command-line and menu entry commands
   3059 
   3060 13.3.35 testload
   3061 ----------------
   3062 
   3063  -- Command: testload file
   3064      Read the entire contents of FILE in several different ways and
   3065      compare them, to test the filesystem code. The output is somewhat
   3066      cryptic, but if no errors are reported and the final `i=X,
   3067      filepos=Y' reading has X and Y equal, then it is definitely
   3068      consistent, and very likely works correctly subject to a
   3069      consistent offset error. If this test succeeds, then a good next
   3070      step is to try loading a kernel.
   3071 
   3072 
   3073 File: grub.info,  Node: testvbe,  Next: uppermem,  Prev: testload,  Up: Command-line and menu entry commands
   3074 
   3075 13.3.36 testvbe
   3076 ---------------
   3077 
   3078  -- Command: testvbe mode
   3079      Test the VESA BIOS EXTENSION mode MODE. This command will switch
   3080      your video card to the graphics mode, and show an endless
   3081      animation. Hit any key to return. See also *Note vbeprobe::.
   3082 
   3083 
   3084 File: grub.info,  Node: uppermem,  Next: vbeprobe,  Prev: testvbe,  Up: Command-line and menu entry commands
   3085 
   3086 13.3.37 uppermem
   3087 ----------------
   3088 
   3089  -- Command: uppermem kbytes
   3090      Force GRUB to assume that only KBYTES kilobytes of upper memory
   3091      are installed. Any system address range maps are discarded.
   3092 
   3093      *Caution:* This should be used with great caution, and should only
   3094      be necessary on some old machines. GRUB's BIOS probe can pick up
   3095      all RAM on all new machines the author has ever heard of. It can
   3096      also be used for debugging purposes to lie to an OS.
   3097 
   3098 
   3099 File: grub.info,  Node: vbeprobe,  Prev: uppermem,  Up: Command-line and menu entry commands
   3100 
   3101 13.3.38 vbeprobe
   3102 ----------------
   3103 
   3104  -- Command: vbeprobe [mode]
   3105      Probe VESA BIOS EXTENSION information. If the mode MODE is
   3106      specified, show only the information about MODE. Otherwise, this
   3107      command lists up available VBE modes on the screen. See also *Note
   3108      testvbe::.
   3109 
   3110 
   3111 File: grub.info,  Node: Troubleshooting,  Next: Invoking the grub shell,  Prev: Commands,  Up: Top
   3112 
   3113 14 Error messages reported by GRUB
   3114 **********************************
   3115 
   3116 This chapter describes error messages reported by GRUB when you
   3117 encounter trouble. *Note Invoking the grub shell::, if your problem is
   3118 specific to the grub shell.
   3119 
   3120 * Menu:
   3121 
   3122 * Stage1 errors::               Errors reported by the Stage 1
   3123 * Stage1.5 errors::             Errors reported by the Stage 1.5
   3124 * Stage2 errors::               Errors reported by the Stage 2
   3125 
   3126 
   3127 File: grub.info,  Node: Stage1 errors,  Next: Stage1.5 errors,  Up: Troubleshooting
   3128 
   3129 14.1 Errors reported by the Stage 1
   3130 ===================================
   3131 
   3132 The general way that the Stage 1 handles errors is to print an error
   3133 string and then halt. Pressing `<CTRL>-<ALT>-<DEL>' will reboot.
   3134 
   3135    The following is a comprehensive list of error messages for the
   3136 Stage 1:
   3137 
   3138 Hard Disk Error
   3139      The stage2 or stage1.5 is being read from a hard disk, and the
   3140      attempt to determine the size and geometry of the hard disk failed.
   3141 
   3142 Floppy Error
   3143      The stage2 or stage1.5 is being read from a floppy disk, and the
   3144      attempt to determine the size and geometry of the floppy disk
   3145      failed. It's listed as a separate error since the probe sequence
   3146      is different than for hard disks.
   3147 
   3148 Read Error
   3149      A disk read error happened while trying to read the stage2 or
   3150      stage1.5.
   3151 
   3152 Geom Error
   3153      The location of the stage2 or stage1.5 is not in the portion of
   3154      the disk supported directly by the BIOS read calls.  This could
   3155      occur because the BIOS translated geometry has been changed by the
   3156      user or the disk is moved to another machine or controller after
   3157      installation, or GRUB was not installed using itself (if it was,
   3158      the Stage 2 version of this error would have been seen during that
   3159      process and it would not have completed the install).
   3160 
   3161 
   3162 File: grub.info,  Node: Stage1.5 errors,  Next: Stage2 errors,  Prev: Stage1 errors,  Up: Troubleshooting
   3163 
   3164 14.2 Errors reported by the Stage 1.5
   3165 =====================================
   3166 
   3167 The general way that the Stage 1.5 handles errors is to print an error
   3168 number in the form `Error NUM' and then halt. Pressing
   3169 `<CTRL>-<ALT>-<DEL>' will reboot.
   3170 
   3171    The error numbers correspond to the errors reported by Stage 2.
   3172 *Note Stage2 errors::.
   3173 
   3174 
   3175 File: grub.info,  Node: Stage2 errors,  Prev: Stage1.5 errors,  Up: Troubleshooting
   3176 
   3177 14.3 Errors reported by the Stage 2
   3178 ===================================
   3179 
   3180 The general way that the Stage 2 handles errors is to abort the
   3181 operation in question, print an error string, then (if possible) either
   3182 continue based on the fact that an error occurred or wait for the user
   3183 to deal with the error.
   3184 
   3185    The following is a comprehensive list of error messages for the
   3186 Stage 2 (error numbers for the Stage 1.5 are listed before the colon in
   3187 each description):
   3188 
   3189 1 : Filename must be either an absolute filename or blocklist
   3190      This error is returned if a file name is requested which doesn't
   3191      fit the syntax/rules listed in the *Note Filesystem::.
   3192 
   3193 2 : Bad file or directory type
   3194      This error is returned if a file requested is not a regular file,
   3195      but something like a symbolic link, directory, or FIFO.
   3196 
   3197 3 : Bad or corrupt data while decompressing file
   3198      This error is returned if the run-length decompression code gets an
   3199      internal error. This is usually from a corrupt file.
   3200 
   3201 4 : Bad or incompatible header in compressed file
   3202      This error is returned if the file header for a supposedly
   3203      compressed file is bad.
   3204 
   3205 5 : Partition table invalid or corrupt
   3206      This error is returned if the sanity checks on the integrity of the
   3207      partition table fail. This is a bad sign.
   3208 
   3209 6 : Mismatched or corrupt version of stage1/stage2
   3210      This error is returned if the install command points to
   3211      incompatible or corrupt versions of the stage1 or stage2. It can't
   3212      detect corruption in general, but this is a sanity check on the
   3213      version numbers, which should be correct.
   3214 
   3215 7 : Loading below 1MB is not supported
   3216      This error is returned if the lowest address in a kernel is below
   3217      the 1MB boundary. The Linux zImage format is a special case and
   3218      can be handled since it has a fixed loading address and maximum
   3219      size.
   3220 
   3221 8 : Kernel must be loaded before booting
   3222      This error is returned if GRUB is told to execute the boot sequence
   3223      without having a kernel to start.
   3224 
   3225 9 : Unknown boot failure
   3226      This error is returned if the boot attempt did not succeed for
   3227      reasons which are unknown.
   3228 
   3229 10 : Unsupported Multiboot features requested
   3230      This error is returned when the Multiboot features word in the
   3231      Multiboot header requires a feature that is not recognized. The
   3232      point of this is that the kernel requires special handling which
   3233      GRUB is probably unable to provide.
   3234 
   3235 11 : Unrecognized device string
   3236      This error is returned if a device string was expected, and the
   3237      string encountered didn't fit the syntax/rules listed in the *Note
   3238      Filesystem::.
   3239 
   3240 12 : Invalid device requested
   3241      This error is returned if a device string is recognizable but does
   3242      not fall under the other device errors.
   3243 
   3244 13 : Invalid or unsupported executable format
   3245      This error is returned if the kernel image being loaded is not
   3246      recognized as Multiboot or one of the supported native formats
   3247      (Linux zImage or bzImage, FreeBSD, or NetBSD).
   3248 
   3249 14 : Filesystem compatibility error, cannot read whole file
   3250      Some of the filesystem reading code in GRUB has limits on the
   3251      length of the files it can read. This error is returned when the
   3252      user runs into such a limit.
   3253 
   3254 15 : File not found
   3255      This error is returned if the specified file name cannot be found,
   3256      but everything else (like the disk/partition info) is OK.
   3257 
   3258 16 : Inconsistent filesystem structure
   3259      This error is returned by the filesystem code to denote an internal
   3260      error caused by the sanity checks of the filesystem structure on
   3261      disk not matching what it expects. This is usually caused by a
   3262      corrupt filesystem or bugs in the code handling it in GRUB.
   3263 
   3264 17 : Cannot mount selected partition
   3265      This error is returned if the partition requested exists, but the
   3266      filesystem type cannot be recognized by GRUB.
   3267 
   3268 18 : Selected cylinder exceeds maximum supported by BIOS
   3269      This error is returned when a read is attempted at a linear block
   3270      address beyond the end of the BIOS translated area. This generally
   3271      happens if your disk is larger than the BIOS can handle (512MB for
   3272      (E)IDE disks on older machines or larger than 8GB in general).
   3273 
   3274 19 : Linux kernel must be loaded before initrd
   3275      This error is returned if the initrd command is used before
   3276      loading a Linux kernel.
   3277 
   3278 20 : Multiboot kernel must be loaded before modules
   3279      This error is returned if the module load command is used before
   3280      loading a Multiboot kernel. It only makes sense in this case
   3281      anyway, as GRUB has no idea how to communicate the presence of
   3282      such modules to a non-Multiboot-aware kernel.
   3283 
   3284 21 : Selected disk does not exist
   3285      This error is returned if the device part of a device- or full
   3286      file name refers to a disk or BIOS device that is not present or
   3287      not recognized by the BIOS in the system.
   3288 
   3289 22 : No such partition
   3290      This error is returned if a partition is requested in the device
   3291      part of a device- or full file name which isn't on the selected
   3292      disk.
   3293 
   3294 23 : Error while parsing number
   3295      This error is returned if GRUB was expecting to read a number and
   3296      encountered bad data.
   3297 
   3298 24 : Attempt to access block outside partition
   3299      This error is returned if a linear block address is outside of the
   3300      disk partition. This generally happens because of a corrupt
   3301      filesystem on the disk or a bug in the code handling it in GRUB
   3302      (it's a great debugging tool).
   3303 
   3304 25 : Disk read error
   3305      This error is returned if there is a disk read error when trying to
   3306      probe or read data from a particular disk.
   3307 
   3308 26 : Too many symbolic links
   3309      This error is returned if the link count is beyond the maximum
   3310      (currently 5), possibly the symbolic links are looped.
   3311 
   3312 27 : Unrecognized command
   3313      This error is returned if an unrecognized command is entered on the
   3314      command-line or in a boot sequence section of a configuration file
   3315      and that entry is selected.
   3316 
   3317 28 : Selected item cannot fit into memory
   3318      This error is returned if a kernel, module, or raw file load
   3319      command is either trying to load its data such that it won't fit
   3320      into memory or it is simply too big.
   3321 
   3322 29 : Disk write error
   3323      This error is returned if there is a disk write error when trying
   3324      to write to a particular disk. This would generally only occur
   3325      during an install of set active partition command.
   3326 
   3327 30 : Invalid argument
   3328      This error is returned if an argument specified to a command is
   3329      invalid.
   3330 
   3331 31 : File is not sector aligned
   3332      This error may occur only when you access a ReiserFS partition by
   3333      block-lists (e.g. the command `install'). In this case, you should
   3334      mount the partition with the `-o notail' option.
   3335 
   3336 32 : Must be authenticated
   3337      This error is returned if you try to run a locked entry. You should
   3338      enter a correct password before running such an entry.
   3339 
   3340 33 : Serial device not configured
   3341      This error is returned if you try to change your terminal to a
   3342      serial one before initializing any serial device.
   3343 
   3344 34 : No spare sectors on the disk
   3345      This error is returned if a disk doesn't have enough spare space.
   3346      This happens when you try to embed Stage 1.5 into the unused
   3347      sectors after the MBR, but the first partition starts right after
   3348      the MBR or they are used by EZ-BIOS.
   3349 
   3350 
   3351 File: grub.info,  Node: Invoking the grub shell,  Next: Invoking grub-install,  Prev: Troubleshooting,  Up: Top
   3352 
   3353 15 Invoking the grub shell
   3354 **************************
   3355 
   3356 This chapter documents the grub shell `grub'. Note that the grub shell
   3357 is an emulator; it doesn't run under the native environment, so it
   3358 sometimes does something wrong. Therefore, you shouldn't trust it too
   3359 much. If there is anything wrong with it, don't hesitate to try the
   3360 native GRUB environment, especially when it guesses a wrong map between
   3361 BIOS drives and OS devices.
   3362 
   3363 * Menu:
   3364 
   3365 * Basic usage::                 How to use the grub shell
   3366 * Installation under UNIX::     How to install GRUB via `grub'
   3367 * Device map::                  The map between BIOS drives and OS devices
   3368 
   3369 
   3370 File: grub.info,  Node: Basic usage,  Next: Installation under UNIX,  Up: Invoking the grub shell
   3371 
   3372 15.1 Introduction into the grub shell
   3373 =====================================
   3374 
   3375 You can use the command `grub' for installing GRUB under your operating
   3376 systems and for a testbed when you add a new feature into GRUB or when
   3377 fixing a bug. `grub' is almost the same as the Stage 2, and, in fact,
   3378 it shares the source code with the Stage 2 and you can use the same
   3379 commands (*note Commands::) in `grub'. It is emulated by replacing BIOS
   3380 calls with UNIX system calls and libc functions.
   3381 
   3382    The command `grub' accepts the following options:
   3383 
   3384 `--help'
   3385      Print a summary of the command-line options and exit.
   3386 
   3387 `--version'
   3388      Print the version number of GRUB and exit.
   3389 
   3390 `--verbose'
   3391      Print some verbose messages for debugging purpose.
   3392 
   3393 `--device-map=FILE'
   3394      Use the device map file FILE. The format is described in *Note
   3395      Device map::.
   3396 
   3397 `--no-floppy'
   3398      Do not probe any floppy drive. This option has no effect if the
   3399      option `--device-map' is specified (*note Device map::).
   3400 
   3401 `--probe-second-floppy'
   3402      Probe the second floppy drive. If this option is not specified,
   3403      the grub shell does not probe it, as that sometimes takes a long
   3404      time. If you specify the device map file (*note Device map::), the
   3405      grub shell just ignores this option.
   3406 
   3407 `--config-file=FILE'
   3408      Read the configuration file FILE instead of `/boot/grub/menu.lst'.
   3409      The format is the same as the normal GRUB syntax. See *Note
   3410      Filesystem::, for more information.
   3411 
   3412 `--boot-drive=DRIVE'
   3413      Set the stage2 BOOT_DRIVE to DRIVE. This argument should be an
   3414      integer (decimal, octal or hexadecimal).
   3415 
   3416 `--install-partition=PAR'
   3417      Set the stage2 INSTALL_PARTITION to PAR. This argument should be
   3418      an integer (decimal, octal or hexadecimal).
   3419 
   3420 `--no-config-file'
   3421      Do not use the configuration file even if it can be read.
   3422 
   3423 `--no-curses'
   3424      Do not use the screen handling interface by the curses even if it
   3425      is available.
   3426 
   3427 `--batch'
   3428      This option has the same meaning as `--no-config-file --no-curses'.
   3429 
   3430 `--read-only'
   3431      Disable writing to any disk.
   3432 
   3433 `--hold'
   3434      Wait until a debugger will attach. This option is useful when you
   3435      want to debug the startup code.
   3436 
   3437 
   3438 File: grub.info,  Node: Installation under UNIX,  Next: Device map,  Prev: Basic usage,  Up: Invoking the grub shell
   3439 
   3440 15.2 How to install GRUB via `grub'
   3441 ===================================
   3442 
   3443 The installation procedure is the same as under the "native" Stage 2.
   3444 *Note Installation::, for more information. The command `grub'-specific
   3445 information is described here.
   3446 
   3447    What you should be careful about is "buffer cache". `grub' makes use
   3448 of raw devices instead of filesystems that your operating systems
   3449 serve, so there exists a potential problem that some cache
   3450 inconsistency may corrupt your filesystems. What we recommend is:
   3451 
   3452    * If you can unmount drives to which GRUB may write any amount of
   3453      data, unmount them before running `grub'.
   3454 
   3455    * If a drive cannot be unmounted but can be mounted with the
   3456      read-only flag, mount it in read-only mode. That should be secure.
   3457 
   3458    * If a drive must be mounted with the read-write flag, make sure
   3459      that no activity is being done on it while the command `grub' is
   3460      running.
   3461 
   3462    * Reboot your operating system as soon as possible. This is probably
   3463      not required if you follow the rules above, but reboot is the most
   3464      secure way.
   3465 
   3466    In addition, enter the command `quit' when you finish the
   3467 installation. That is _very important_ because `quit' makes the buffer
   3468 cache consistent. Do not push <C-c>.
   3469 
   3470    If you want to install GRUB non-interactively, specify `--batch'
   3471 option in the command-line. This is a simple example:
   3472 
   3473      #!/bin/sh
   3474 
   3475      # Use /usr/sbin/grub if you are on an older system.
   3476      /sbin/grub --batch <<EOT 1>/dev/null 2>/dev/null
   3477      root (hd0,0)
   3478      setup (hd0)
   3479      quit
   3480      EOT
   3481 
   3482 
   3483 File: grub.info,  Node: Device map,  Prev: Installation under UNIX,  Up: Invoking the grub shell
   3484 
   3485 15.3 The map between BIOS drives and OS devices
   3486 ===============================================
   3487 
   3488 When you specify the option `--device-map' (*note Basic usage::), the
   3489 grub shell creates the "device map file" automatically unless it
   3490 already exists. The file name `/boot/grub/device.map' is preferred.
   3491 
   3492    If the device map file exists, the grub shell reads it to map BIOS
   3493 drives to OS devices. This file consists of lines like this:
   3494 
   3495      DEVICE FILE
   3496 
   3497    DEVICE is a drive specified in the GRUB syntax (*note Device
   3498 syntax::), and FILE is an OS file, which is normally a device file.
   3499 
   3500    The reason why the grub shell gives you the device map file is that
   3501 it cannot guess the map between BIOS drives and OS devices correctly in
   3502 some environments. For example, if you exchange the boot sequence
   3503 between IDE and SCSI in your BIOS, it gets the order wrong.
   3504 
   3505    Thus, edit the file if the grub shell makes a mistake. You can put
   3506 any comments in the file if needed, as the grub shell assumes that a
   3507 line is just a comment if the first character is `#'.
   3508 
   3509 
   3510 File: grub.info,  Node: Invoking grub-install,  Next: Invoking grub-md5-crypt,  Prev: Invoking the grub shell,  Up: Top
   3511 
   3512 16 Invoking grub-install
   3513 ************************
   3514 
   3515 The program `grub-install' installs GRUB on your drive using the grub
   3516 shell (*note Invoking the grub shell::). You must specify the device
   3517 name on which you want to install GRUB, like this:
   3518 
   3519      grub-install INSTALL_DEVICE
   3520 
   3521    The device name INSTALL_DEVICE is an OS device name or a GRUB device
   3522 name.
   3523 
   3524    `grub-install' accepts the following options:
   3525 
   3526 `--help'
   3527      Print a summary of the command-line options and exit.
   3528 
   3529 `--version'
   3530      Print the version number of GRUB and exit.
   3531 
   3532 `--force-lba'
   3533      Force GRUB to use LBA mode even for a buggy BIOS. Use this option
   3534      only if your BIOS doesn't work properly in LBA mode even though it
   3535      supports LBA mode.
   3536 
   3537 `--root-directory=DIR'
   3538      Install GRUB images under the directory DIR instead of the root
   3539      directory. This option is useful when you want to install GRUB
   3540      into a separate partition or a removable disk. Here is an example
   3541      in which you have a separate "boot" partition which is mounted on
   3542      `/boot':
   3543 
   3544           grub-install --root-directory=/boot hd0
   3545 
   3546 `--grub-shell=FILE'
   3547      Use FILE as the grub shell. You can append arbitrary options to
   3548      FILE after the file name, like this:
   3549 
   3550           grub-install --grub-shell="grub --read-only" /dev/fd0
   3551 
   3552 `--recheck'
   3553      Recheck the device map, even if `/boot/grub/device.map' already
   3554      exists. You should use this option whenever you add/remove a disk
   3555      into/from your computer.
   3556 
   3557 
   3558 File: grub.info,  Node: Invoking grub-md5-crypt,  Next: Invoking grub-terminfo,  Prev: Invoking grub-install,  Up: Top
   3559 
   3560 17 Invoking grub-md5-crypt
   3561 **************************
   3562 
   3563 The program `grub-md5-crypt' encrypts a password in MD5 format.  This
   3564 is just a frontend of the grub shell (*note Invoking the grub shell::).
   3565 Passwords encrypted by this program can be used with the command
   3566 `password' (*note password::).
   3567 
   3568    `grub-md5-crypt' accepts the following options:
   3569 
   3570 `--help'
   3571      Print a summary of the command-line options and exit.
   3572 
   3573 `--version'
   3574      Print the version information and exit.
   3575 
   3576 `--grub-shell=FILE'
   3577      Use FILE as the grub shell.
   3578 
   3579 
   3580 File: grub.info,  Node: Invoking grub-terminfo,  Next: Invoking grub-set-default,  Prev: Invoking grub-md5-crypt,  Up: Top
   3581 
   3582 18 Invoking grub-terminfo
   3583 *************************
   3584 
   3585 The program `grub-terminfo' generates a terminfo command from a
   3586 terminfo name (*note terminfo::). The result can be used in the
   3587 configuration file, to define escape sequences. Because GRUB assumes
   3588 that your terminal is vt100-compatible by default, this would be useful
   3589 only if your terminal is uncommon (such as vt52).
   3590 
   3591    `grub-terminfo' accepts the following options:
   3592 
   3593 `--help'
   3594      Print a summary of the command-line options and exit.
   3595 
   3596 `--version'
   3597      Print the version information and exit.
   3598 
   3599    You must specify one argument to this command. For example:
   3600 
   3601      grub-terminfo vt52
   3602 
   3603 
   3604 File: grub.info,  Node: Invoking grub-set-default,  Next: Invoking mbchk,  Prev: Invoking grub-terminfo,  Up: Top
   3605 
   3606 19 Invoking grub-set-default
   3607 ****************************
   3608 
   3609 The program `grub-set-default' sets the default boot entry for GRUB.
   3610 This automatically creates a file named `default' under your GRUB
   3611 directory (i.e. `/boot/grub'), if it is not present. This file is used
   3612 to determine the default boot entry when GRUB boots up your system when
   3613 you use `default saved' in your configuration file (*note default::),
   3614 and to save next default boot entry when you use `savedefault' in a
   3615 boot entry (*note savedefault::).
   3616 
   3617    `grub-set-default' accepts the following options:
   3618 
   3619 `--help'
   3620      Print a summary of the command-line options and exit.
   3621 
   3622 `--version'
   3623      Print the version information and exit.
   3624 
   3625 `--root-directory=DIR'
   3626      Use the directory DIR instead of the root directory (i.e. `/') to
   3627      define the location of the default file. This is useful when you
   3628      mount a disk which is used for another system.
   3629 
   3630    You must specify a single argument to `grub-set-default'. This
   3631 argument is normally the number of a default boot entry. For example,
   3632 if you have this configuration file:
   3633 
   3634      default saved
   3635      timeout 10
   3636 
   3637      title GNU/Hurd
   3638      root (hd0,0)
   3639      ...
   3640 
   3641      title GNU/Linux
   3642      root (hd0,1)
   3643      ...
   3644 
   3645    and if you want to set the next default boot entry to GNU/Linux, you
   3646 may execute this command:
   3647 
   3648      grub-set-default 1
   3649 
   3650    Because the entry for GNU/Linux is `1'. Note that entries are
   3651 counted from zero. So, if you want to specify GNU/Hurd here, then you
   3652 should specify `0'.
   3653 
   3654    This feature is very useful if you want to test a new kernel or to
   3655 make your system quite robust. *Note Making your system robust::, for
   3656 more hints about how to set up a robust system.
   3657 
   3658 
   3659 File: grub.info,  Node: Invoking mbchk,  Next: Obtaining and Building GRUB,  Prev: Invoking grub-set-default,  Up: Top
   3660 
   3661 20 Invoking mbchk
   3662 *****************
   3663 
   3664 The program `mbchk' checks for the format of a Multiboot kernel. We
   3665 recommend using this program before booting your own kernel by GRUB.
   3666 
   3667    `mbchk' accepts the following options:
   3668 
   3669 `--help'
   3670      Print a summary of the command-line options and exit.
   3671 
   3672 `--version'
   3673      Print the version number of GRUB and exit.
   3674 
   3675 `--quiet'
   3676      Suppress all normal output.
   3677 
   3678 
   3679 File: grub.info,  Node: Obtaining and Building GRUB,  Next: Reporting bugs,  Prev: Invoking mbchk,  Up: Top
   3680 
   3681 Appendix A How to obtain and build GRUB
   3682 ***************************************
   3683 
   3684      *Caution:* GRUB requires binutils-2.9.1.0.23 or later because the
   3685      GNU assembler has been changed so that it can produce real 16bits
   3686      machine code between 2.9.1 and 2.9.1.0.x. See
   3687      `http://sources.redhat.com/binutils/', to obtain information on
   3688      how to get the latest version.
   3689 
   3690    GRUB is available from the GNU alpha archive site
   3691 `ftp://alpha.gnu.org/gnu/grub' or any of its mirrors. The file will be
   3692 named grub-version.tar.gz. The current version is 0.97, so the file you
   3693 should grab is:
   3694 
   3695    `ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz'
   3696 
   3697    To unbundle GRUB use the instruction:
   3698 
   3699      zcat grub-0.97.tar.gz | tar xvf -
   3700 
   3701    which will create a directory called `grub-0.97' with all the
   3702 sources. You can look at the file `INSTALL' for detailed instructions
   3703 on how to build and install GRUB, but you should be able to just do:
   3704 
   3705      cd grub-0.97
   3706      ./configure
   3707      make install
   3708 
   3709    This will install the grub shell `grub' (*note Invoking the grub
   3710 shell::), the Multiboot checker `mbchk' (*note Invoking mbchk::), and
   3711 the GRUB images. This will also install the GRUB manual.
   3712 
   3713    Also, the latest version is available from the CVS. See
   3714 `http://savannah.gnu.org/cvs/?group=grub' for more information.
   3715 
   3716 
   3717 File: grub.info,  Node: Reporting bugs,  Next: Future,  Prev: Obtaining and Building GRUB,  Up: Top
   3718 
   3719 Appendix B Reporting bugs
   3720 *************************
   3721 
   3722 These are the guideline for how to report bugs. Take a look at this
   3723 list below before you submit bugs:
   3724 
   3725   1. Before getting unsettled, read this manual through and through.
   3726      Also, see the GNU GRUB FAQ
   3727      (http://www.gnu.org/software/grub/grub-faq.html).
   3728 
   3729   2. Always mention the information on your GRUB. The version number
   3730      and the configuration are quite important. If you build it
   3731      yourself, write the options specified to the configure script and
   3732      your operating system, including the versions of gcc and binutils.
   3733 
   3734   3. If you have trouble with the installation, inform us of how you
   3735      installed GRUB. Don't omit error messages, if any. Just `GRUB hangs
   3736      up when it boots' is not enough.
   3737 
   3738      The information on your hardware is also essential. These are
   3739      especially important: the geometries and the partition tables of
   3740      your hard disk drives and your BIOS.
   3741 
   3742   4. If GRUB cannot boot your operating system, write down _everything_
   3743      you see on the screen. Don't paraphrase them, like `The foo OS
   3744      crashes with GRUB, even though it can boot with the bar boot
   3745      loader just fine'. Mention the commands you executed, the messages
   3746      printed by them, and information on your operating system
   3747      including the version number.
   3748 
   3749   5. Explain what you wanted to do. It is very useful to know your
   3750      purpose and your wish, and how GRUB didn't satisfy you.
   3751 
   3752   6. If you can investigate the problem yourself, please do. That will
   3753      give you and us much more information on the problem. Attaching a
   3754      patch is even better.
   3755 
   3756      When you attach a patch, make the patch in unified diff format, and
   3757      write ChangeLog entries. But, even when you make a patch, don't
   3758      forget to explain the problem, so that we can understand what your
   3759      patch is for.
   3760 
   3761   7. Write down anything that you think might be related. Please
   3762      understand that we often need to reproduce the same problem you
   3763      encounterred in our environment. So your information should be
   3764      sufficient for us to do the same thing--Don't forget that we
   3765      cannot see your computer directly. If you are not sure whether to
   3766      state a fact or leave it out, state it!  Reporting too many things
   3767      is much better than omitting something important.
   3768 
   3769    If you follow the guideline above, submit a report to the Bug
   3770 Tracking System (http://savannah.gnu.org/bugs/?group=grub).
   3771 Alternatively, you can submit a report via electronic mail to
   3772 <bug-grub (a] gnu.org>, but we strongly recommend that you use the Bug
   3773 Tracking System, because e-mail can be passed over easily.
   3774 
   3775    Once we get your report, we will try to fix the bugs.
   3776 
   3777 
   3778 File: grub.info,  Node: Future,  Next: Internals,  Prev: Reporting bugs,  Up: Top
   3779 
   3780 Appendix C Where GRUB will go
   3781 *****************************
   3782 
   3783 We started the next generation of GRUB, GRUB 2. This will include
   3784 internationalization, dynamic module loading, real memory management,
   3785 multiple architecture support, a scripting language, and many other
   3786 nice feature. If you are interested in the development of GRUB 2, take
   3787 a look at the homepage (http://www.gnu.org/software/grub/grub.html).
   3788 
   3789 
   3790 File: grub.info,  Node: Internals,  Next: Index,  Prev: Future,  Up: Top
   3791 
   3792 Appendix D Hacking GRUB
   3793 ***********************
   3794 
   3795 This chapter documents the user-invisible aspect of GRUB.
   3796 
   3797    As a general rule of software development, it is impossible to keep
   3798 the descriptions of the internals up-to-date, and it is quite hard to
   3799 document everything. So refer to the source code, whenever you are not
   3800 satisfied with this documentation.  Please assume that this gives just
   3801 hints to you.
   3802 
   3803 * Menu:
   3804 
   3805 * Memory map::                  The memory map of various components
   3806 * Embedded data::               Embedded variables in GRUB
   3807 * Filesystem interface::        The generic interface for filesystems
   3808 * Command interface::           The generic interface for built-ins
   3809 * Bootstrap tricks::            The bootstrap mechanism used in GRUB
   3810 * I/O ports detection::         How to probe I/O ports used by INT 13H
   3811 * Memory detection::            How to detect all installed RAM
   3812 * Low-level disk I/O::          INT 13H disk I/O interrupts
   3813 * MBR::                         The structure of Master Boot Record
   3814 * Partition table::             The format of partition tables
   3815 * Submitting patches::          Where and how you should send patches
   3816 
   3817 
   3818 File: grub.info,  Node: Memory map,  Next: Embedded data,  Up: Internals
   3819 
   3820 D.1 The memory map of various components
   3821 ========================================
   3822 
   3823 GRUB consists of two distinct components, called "stages", which are
   3824 loaded at different times in the boot process. Because they run
   3825 mutual-exclusively, sometimes a memory area overlaps with another
   3826 memory area. And, even in one stage, a single memory area can be used
   3827 for various purposes, because their usages are mutually exclusive.
   3828 
   3829    Here is the memory map of the various components:
   3830 
   3831 0 to 4K-1
   3832      BIOS and real mode interrupts
   3833 
   3834 0x07BE to 0x07FF
   3835      Partition table passed to another boot loader
   3836 
   3837 down from 8K-1
   3838      Real mode stack
   3839 
   3840 0x2000 to ?
   3841      The optional Stage 1.5 is loaded here
   3842 
   3843 0x2000 to 0x7FFF
   3844      Command-line buffer for Multiboot kernels and modules
   3845 
   3846 0x7C00 to 0x7DFF
   3847      Stage 1 is loaded here by BIOS or another boot loader
   3848 
   3849 0x7F00 to 0x7F42
   3850      LBA drive parameters
   3851 
   3852 0x8000 to ?
   3853      Stage2 is loaded here
   3854 
   3855 The end of Stage 2 to 416K-1
   3856      Heap, in particular used for the menu
   3857 
   3858 down from 416K-1
   3859      Protected mode stack
   3860 
   3861 416K to 448K-1
   3862      Filesystem buffer
   3863 
   3864 448K to 479.5K-1
   3865      Raw device buffer
   3866 
   3867 479.5K to 480K-1
   3868      512-byte scratch area
   3869 
   3870 480K to 512K-1
   3871      Buffers for various functions, such as password, command-line, cut
   3872      and paste, and completion.
   3873 
   3874 The last 1K of lower memory
   3875      Disk swapping code and data
   3876 
   3877    See the file `stage2/shared.h', for more information.
   3878 
   3879 
   3880 File: grub.info,  Node: Embedded data,  Next: Filesystem interface,  Prev: Memory map,  Up: Internals
   3881 
   3882 D.2 Embedded variables in GRUB
   3883 ==============================
   3884 
   3885 Stage 1 and Stage 2 have embedded variables whose locations are
   3886 well-defined, so that the installation can patch the binary file
   3887 directly without recompilation of the stages.
   3888 
   3889    In Stage 1, these are defined:
   3890 
   3891 `0x3E'
   3892      The version number (not GRUB's, but the installation mechanism's).
   3893 
   3894 `0x40'
   3895      The boot drive. If it is 0xFF, use a drive passed by BIOS.
   3896 
   3897 `0x41'
   3898      The flag for if forcing LBA.
   3899 
   3900 `0x42'
   3901      The starting address of Stage 2.
   3902 
   3903 `0x44'
   3904      The first sector of Stage 2.
   3905 
   3906 `0x48'
   3907      The starting segment of Stage 2.
   3908 
   3909 `0x1FE'
   3910      The signature (`0xAA55').
   3911 
   3912    See the file `stage1/stage1.S', for more information.
   3913 
   3914    In the first sector of Stage 1.5 and Stage 2, the block lists are
   3915 recorded between `firstlist' and `lastlist'. The address of `lastlist'
   3916 is determined when assembling the file `stage2/start.S'.
   3917 
   3918    The trick here is that it is actually read backward, and the first
   3919 8-byte block list is not read here, but after the pointer is decremented
   3920 8 bytes, then after reading it, it decrements again, reads, and so on,
   3921 until it is finished. The terminating condition is when the number of
   3922 sectors to be read in the next block list is zero.
   3923 
   3924    The format of a block list can be seen from the example in the code
   3925 just before the `firstlist' label. Note that it is always from the
   3926 beginning of the disk, but _not_ relative to the partition boundaries.
   3927 
   3928    In the second sector of Stage 1.5 and Stage 2, these are defined:
   3929 
   3930 `0x6'
   3931      The version number (likewise, the installation mechanism's).
   3932 
   3933 `0x8'
   3934      The installed partition.
   3935 
   3936 `0xC'
   3937      The saved entry number.
   3938 
   3939 `0x10'
   3940      The identifier.
   3941 
   3942 `0x11'
   3943      The flag for if forcing LBA.
   3944 
   3945 `0x12'
   3946      The version string (GRUB's).
   3947 
   3948 `0x12' + "the length of the version string"
   3949      The name of a configuration file.
   3950 
   3951    See the file `stage2/asm.S', for more information.
   3952 
   3953 
   3954 File: grub.info,  Node: Filesystem interface,  Next: Command interface,  Prev: Embedded data,  Up: Internals
   3955 
   3956 D.3 The generic interface for filesystems
   3957 =========================================
   3958 
   3959 For any particular partition, it is presumed that only one of the
   3960 "normal" filesystems such as FAT, FFS, or ext2fs can be used, so there
   3961 is a switch table managed by the functions in `disk_io.c'. The notation
   3962 is that you can only "mount" one at a time.
   3963 
   3964    The block list filesystem has a special place in the system. In
   3965 addition to the "normal" filesystem (or even without one mounted), you
   3966 can access disk blocks directly (in the indicated partition) via the
   3967 block list notation. Using the block list filesystem doesn't effect any
   3968 other filesystem mounts.
   3969 
   3970    The variables which can be read by the filesystem backend are:
   3971 
   3972 `current_drive'
   3973      The current BIOS drive number (numbered from 0, if a floppy, and
   3974      numbered from 0x80, if a hard disk).
   3975 
   3976 `current_partition'
   3977      The current partition number.
   3978 
   3979 `current_slice'
   3980      The current partition type.
   3981 
   3982 `saved_drive'
   3983      The "drive" part of the root device.
   3984 
   3985 `saved_partition'
   3986      The "partition" part of the root device.
   3987 
   3988 `part_start'
   3989      The current partition starting address, in sectors.
   3990 
   3991 `part_length'
   3992      The current partition length, in sectors.
   3993 
   3994 `print_possibilities'
   3995      True when the `dir' function should print the possible completions
   3996      of a file, and false when it should try to actually open a file of
   3997      that name.
   3998 
   3999 `FSYS_BUF'
   4000      Filesystem buffer which is 32K in size, to use in any way which the
   4001      filesystem backend desires.
   4002 
   4003    The variables which need to be written by a filesystem backend are:
   4004 
   4005 `filepos'
   4006      The current position in the file, in sectors.
   4007 
   4008      *Caution:* the value of FILEPOS can be changed out from under the
   4009      filesystem code in the current implementation. Don't depend on it
   4010      being the same for later calls into the backend code!
   4011 
   4012 `filemax'
   4013      The length of the file.
   4014 
   4015 `disk_read_func'
   4016      The value of DISK_READ_HOOK _only_ during reading of data for the
   4017      file, not any other fs data, inodes, FAT tables, whatever, then
   4018      set to `NULL' at all other times (it will be `NULL' by default).
   4019      If this isn't done correctly, then the `testload' and `install'
   4020      commands won't work correctly.
   4021 
   4022    The functions expected to be used by the filesystem backend are:
   4023 
   4024 `devread'
   4025      Only read sectors from within a partition. Sector 0 is the first
   4026      sector in the partition.
   4027 
   4028 `grub_read'
   4029      If the backend uses the block list code, then `grub_read' can be
   4030      used, after setting BLOCK_FILE to 1.
   4031 
   4032 `print_a_completion'
   4033      If PRINT_POSSIBILITIES is true, call `print_a_completion' for each
   4034      possible file name. Otherwise, the file name completion won't work.
   4035 
   4036    The functions expected to be defined by the filesystem backend are
   4037 described at least moderately in the file `filesys.h'. Their usage is
   4038 fairly evident from their use in the functions in `disk_io.c', look for
   4039 the use of the FSYS_TABLE array.
   4040 
   4041    *Caution:* The semantics are such that then `mount'ing the
   4042 filesystem, presume the filesystem buffer `FSYS_BUF' is corrupted, and
   4043 (re-)load all important contents. When opening and reading a file,
   4044 presume that the data from the `mount' is available, and doesn't get
   4045 corrupted by the open/read (i.e. multiple opens and/or reads will be
   4046 done with only one mount if in the same filesystem).
   4047 
   4048 
   4049 File: grub.info,  Node: Command interface,  Next: Bootstrap tricks,  Prev: Filesystem interface,  Up: Internals
   4050 
   4051 D.4 The generic interface for built-ins
   4052 =======================================
   4053 
   4054 GRUB built-in commands are defined in a uniformal interface, whether
   4055 they are menu-specific or can be used anywhere. The definition of a
   4056 builtin command consists of two parts: the code itself and the table of
   4057 the information.
   4058 
   4059    The code must be a function which takes two arguments, a command-line
   4060 string and flags, and returns an `int' value. The "flags" argument
   4061 specifies how the function is called, using a bit mask. The return
   4062 value must be zero if successful, otherwise non-zero. So it is normally
   4063 enough to return ERRNUM.
   4064 
   4065    The table of the information is represented by the structure `struct
   4066 builtin', which contains the name of the command, a pointer to the
   4067 function, flags, a short description of the command and a long
   4068 description of the command. Since the descriptions are used only for
   4069 help messages interactively, you don't have to define them, if the
   4070 command may not be called interactively (such as `title').
   4071 
   4072    The table is finally registered in the table BUILTIN_TABLE, so that
   4073 `run_script' and `enter_cmdline' can find the command. See the files
   4074 `cmdline.c' and `builtins.c', for more details.
   4075 
   4076 
   4077 File: grub.info,  Node: Bootstrap tricks,  Next: I/O ports detection,  Prev: Command interface,  Up: Internals
   4078 
   4079 D.5 The bootstrap mechanism used in GRUB
   4080 ========================================
   4081 
   4082 The disk space can be used in a boot loader is very restricted because
   4083 a MBR (*note MBR::) is only 512 bytes but it also contains a partition
   4084 table (*note Partition table::) and a BPB. So the question is how to
   4085 make a boot loader code enough small to be fit in a MBR.
   4086 
   4087    However, GRUB is a very large program, so we break GRUB into 2 (or 3)
   4088 distinct components, "Stage 1" and "Stage 2" (and optionally "Stage
   4089 1.5"). *Note Memory map::, for more information.
   4090 
   4091    We embed Stage 1 in a MBR or in the boot sector of a partition, and
   4092 place Stage 2 in a filesystem. The optional Stage 1.5 can be installed
   4093 in a filesystem, in the "boot loader" area in a FFS or a ReiserFS, and
   4094 in the sectors right after a MBR, because Stage 1.5 is enough small and
   4095 the sectors right after a MBR is normally an unused region. The size of
   4096 this region is the number of sectors per head minus 1.
   4097 
   4098    Thus, all Stage1 must do is just load Stage2 or Stage1.5. But even if
   4099 Stage 1 needs not to support the user interface or the filesystem
   4100 interface, it is impossible to make Stage 1 less than 400 bytes, because
   4101 GRUB should support both the CHS mode and the LBA mode (*note Low-level
   4102 disk I/O::).
   4103 
   4104    The solution used by GRUB is that Stage 1 loads only the first
   4105 sector of Stage 2 (or Stage 1.5) and Stage 2 itself loads the rest. The
   4106 flow of Stage 1 is:
   4107 
   4108   1. Initialize the system briefly.
   4109 
   4110   2. Detect the geometry and the accessing mode of the "loading drive".
   4111 
   4112   3. Load the first sector of Stage 2.
   4113 
   4114   4. Jump to the starting address of the Stage 2.
   4115 
   4116    The flow of Stage 2 (and Stage 1.5) is:
   4117 
   4118   1. Load the rest of itself to the real starting address, that is, the
   4119      starting address plus 512 bytes. The block lists are stored in the
   4120      last part of the first sector.
   4121 
   4122   2. Long jump to the real starting address.
   4123 
   4124    Note that Stage 2 (or Stage 1.5) does not probe the geometry or the
   4125 accessing mode of the "loading drive", since Stage 1 has already probed
   4126 them.
   4127 
   4128 
   4129 File: grub.info,  Node: I/O ports detection,  Next: Memory detection,  Prev: Bootstrap tricks,  Up: Internals
   4130 
   4131 D.6 How to probe I/O ports used by INT 13H
   4132 ==========================================
   4133 
   4134 FIXME: I will write this chapter after implementing the new technique.
   4135 
   4136 
   4137 File: grub.info,  Node: Memory detection,  Next: Low-level disk I/O,  Prev: I/O ports detection,  Up: Internals
   4138 
   4139 D.7 How to detect all installed RAM
   4140 ===================================
   4141 
   4142 FIXME: I doubt if Erich didn't write this chapter only himself wholly,
   4143 so I will rewrite this chapter.
   4144 
   4145 
   4146 File: grub.info,  Node: Low-level disk I/O,  Next: MBR,  Prev: Memory detection,  Up: Internals
   4147 
   4148 D.8 INT 13H disk I/O interrupts
   4149 ===============================
   4150 
   4151 FIXME: I'm not sure where some part of the original chapter is derived,
   4152 so I will rewrite this chapter.
   4153 
   4154 
   4155 File: grub.info,  Node: MBR,  Next: Partition table,  Prev: Low-level disk I/O,  Up: Internals
   4156 
   4157 D.9 The structure of Master Boot Record
   4158 =======================================
   4159 
   4160 FIXME: Likewise.
   4161 
   4162 
   4163 File: grub.info,  Node: Partition table,  Next: Submitting patches,  Prev: MBR,  Up: Internals
   4164 
   4165 D.10 The format of partition tables
   4166 ===================================
   4167 
   4168 FIXME: Probably the original chapter is derived from "How It Works", so
   4169 I will rewrite this chapter.
   4170 
   4171 
   4172 File: grub.info,  Node: Submitting patches,  Prev: Partition table,  Up: Internals
   4173 
   4174 D.11 Where and how you should send patches
   4175 ==========================================
   4176 
   4177 When you write patches for GRUB, please send them to the mailing list
   4178 <bug-grub (a] gnu.org>. Here is the list of items of which you should take
   4179 care:
   4180 
   4181    * Please make your patch as small as possible. Generally, it is not
   4182      a good thing to make one big patch which changes many things.
   4183      Instead, segregate features and produce many patches.
   4184 
   4185    * Use as late code as possible, for the original code. The CVS
   4186      repository always has the current version (*note Obtaining and
   4187      Building GRUB::).
   4188 
   4189    * Write ChangeLog entries. *Note Change Logs: (standards)Change
   4190      Logs, if you don't know how to write ChangeLog.
   4191 
   4192    * Make patches in unified diff format. `diff -urN' is appropriate in
   4193      most cases.
   4194 
   4195    * Don't make patches reversely. Reverse patches are difficult to
   4196      read and use.
   4197 
   4198    * Be careful enough of the license term and the copyright. Because
   4199      GRUB is under GNU General Public License, you may not steal code
   4200      from software whose license is incompatible against GPL. And, if
   4201      you copy code written by others, you must not ignore their
   4202      copyrights. Feel free to ask GRUB maintainers, whenever you are
   4203      not sure what you should do.
   4204 
   4205    * If your patch is too large to send in e-mail, put it at somewhere
   4206      we can see. Usually, you shouldn't send e-mail over 20K.
   4207 
   4208 
   4209 File: grub.info,  Node: Index,  Prev: Internals,  Up: Top
   4210 
   4211 Index
   4212 *****
   4213 
   4214 [index]
   4215 * Menu:
   4216 
   4217 * blocklist:                             blocklist.            (line  7)
   4218 * boot:                                  boot.                 (line  7)
   4219 * bootp:                                 bootp.                (line  7)
   4220 * cat:                                   cat.                  (line  7)
   4221 * chainloader:                           chainloader.          (line  7)
   4222 * cmp:                                   cmp.                  (line  7)
   4223 * color:                                 color.                (line  7)
   4224 * configfile:                            configfile.           (line  7)
   4225 * current_drive:                         Filesystem interface. (line 19)
   4226 * current_partition:                     Filesystem interface. (line 23)
   4227 * current_slice:                         Filesystem interface. (line 26)
   4228 * debug:                                 debug.                (line  7)
   4229 * default:                               default.              (line  7)
   4230 * device:                                device.               (line  7)
   4231 * devread:                               Filesystem interface. (line 71)
   4232 * dhcp:                                  dhcp.                 (line  7)
   4233 * disk_read_func:                        Filesystem interface. (line 62)
   4234 * displayapm:                            displayapm.           (line  7)
   4235 * displaymem:                            displaymem.           (line  7)
   4236 * embed:                                 embed.                (line  7)
   4237 * fallback:                              fallback.             (line  7)
   4238 * filemax:                               Filesystem interface. (line 59)
   4239 * filepos:                               Filesystem interface. (line 52)
   4240 * find:                                  find.                 (line  7)
   4241 * fstest:                                fstest.               (line  7)
   4242 * FSYS_BUF:                              Filesystem interface. (line 46)
   4243 * geometry:                              geometry.             (line  7)
   4244 * grub_read:                             Filesystem interface. (line 75)
   4245 * halt:                                  halt.                 (line  7)
   4246 * help:                                  help.                 (line  7)
   4247 * hiddenmenu:                            hiddenmenu.           (line  7)
   4248 * hide:                                  hide.                 (line  7)
   4249 * ifconfig:                              ifconfig.             (line  8)
   4250 * impsprobe:                             impsprobe.            (line  7)
   4251 * initrd:                                initrd.               (line  7)
   4252 * install:                               install.              (line  9)
   4253 * ioprobe:                               ioprobe.              (line  7)
   4254 * kernel:                                kernel.               (line  7)
   4255 * lock:                                  lock.                 (line  7)
   4256 * makeactive:                            makeactive.           (line  7)
   4257 * map:                                   map.                  (line  7)
   4258 * md5crypt:                              md5crypt.             (line  7)
   4259 * module:                                module.               (line  7)
   4260 * modulenounzip:                         modulenounzip.        (line  7)
   4261 * pager:                                 pager.                (line  7)
   4262 * part_length:                           Filesystem interface. (line 38)
   4263 * part_start:                            Filesystem interface. (line 35)
   4264 * partnew:                               partnew.              (line  7)
   4265 * parttype:                              parttype.             (line  7)
   4266 * password:                              password.             (line  7)
   4267 * pause:                                 pause.                (line  7)
   4268 * print_a_completion:                    Filesystem interface. (line 79)
   4269 * print_possibilities:                   Filesystem interface. (line 41)
   4270 * quit:                                  quit.                 (line  7)
   4271 * rarp:                                  rarp.                 (line  7)
   4272 * read:                                  read.                 (line  7)
   4273 * reboot:                                reboot.               (line  7)
   4274 * root:                                  root.                 (line  7)
   4275 * rootnoverify:                          rootnoverify.         (line  7)
   4276 * saved_drive:                           Filesystem interface. (line 29)
   4277 * saved_partition:                       Filesystem interface. (line 32)
   4278 * savedefault:                           savedefault.          (line  7)
   4279 * serial:                                serial.               (line  9)
   4280 * setkey:                                setkey.               (line  7)
   4281 * setup:                                 setup.                (line  8)
   4282 * terminal:                              terminal.             (line  9)
   4283 * terminfo:                              terminfo.             (line  9)
   4284 * testload:                              testload.             (line  7)
   4285 * testvbe:                               testvbe.              (line  7)
   4286 * tftpserver:                            tftpserver.           (line  7)
   4287 * timeout:                               timeout.              (line  7)
   4288 * title:                                 title.                (line  7)
   4289 * unhide:                                unhide.               (line  7)
   4290 * uppermem:                              uppermem.             (line  7)
   4291 * vbeprobe:                              vbeprobe.             (line  7)
   4292 
   4293 
   4294 
   4295 Tag Table:
   4296 Node: Top1487
   4297 Node: Introduction3266
   4298 Node: Overview3643
   4299 Node: Overview-Footnotes5865
   4300 Ref: Overview-Footnote-15926
   4301 Node: History6087
   4302 Node: Features7208
   4303 Node: Features-Footnotes12976
   4304 Ref: Features-Footnote-113037
   4305 Node: Role of a boot loader13182
   4306 Node: Role of a boot loader-Footnotes14520
   4307 Ref: Role of a boot loader-Footnote-114607
   4308 Node: Naming convention14686
   4309 Node: Installation17621
   4310 Node: Creating a GRUB boot floppy19363
   4311 Node: Installing GRUB natively20181
   4312 Node: Installing GRUB natively-Footnotes22461
   4313 Ref: Installing GRUB natively-Footnote-122554
   4314 Node: Installing GRUB using grub-install22739
   4315 Node: Making a GRUB bootable CD-ROM25685
   4316 Node: Making a GRUB bootable CD-ROM-Footnotes27730
   4317 Ref: Making a GRUB bootable CD-ROM-Footnote-127833
   4318 Node: Booting27908
   4319 Node: General boot methods28363
   4320 Node: Loading an operating system directly29104
   4321 Node: Chain-loading30408
   4322 Node: Chain-loading-Footnotes31718
   4323 Ref: Chain-loading-Footnote-131789
   4324 Node: OS-specific notes31861
   4325 Node: GNU/Hurd32237
   4326 Node: GNU/Linux32856
   4327 Node: FreeBSD34104
   4328 Node: NetBSD34617
   4329 Node: OpenBSD35275
   4330 Node: DOS/Windows35475
   4331 Node: SCO UnixWare37301
   4332 Node: QNX37719
   4333 Node: Making your system robust37969
   4334 Node: Booting once-only39294
   4335 Node: Booting fallback systems41219
   4336 Node: Configuration44066
   4337 Node: Network48495
   4338 Node: General usage of network support48989
   4339 Node: General usage of network support-Footnotes50850
   4340 Ref: General usage of network support-Footnote-150959
   4341 Node: Diskless51027
   4342 Node: Serial terminal53211
   4343 Node: Preset Menu55444
   4344 Node: Security57812
   4345 Node: Images60620
   4346 Node: Filesystem63131
   4347 Node: Device syntax63814
   4348 Node: File name syntax65308
   4349 Node: Block list syntax66051
   4350 Node: Interface66784
   4351 Node: Command-line interface67661
   4352 Node: Command-line interface-Footnotes69602
   4353 Ref: Command-line interface-Footnote-169691
   4354 Node: Menu interface69786
   4355 Node: Menu entry editor70796
   4356 Node: Hidden menu interface71875
   4357 Node: Commands72452
   4358 Node: Menu-specific commands73029
   4359 Node: default74200
   4360 Node: fallback74678
   4361 Node: hiddenmenu75229
   4362 Node: timeout75717
   4363 Node: title75995
   4364 Node: General commands76266
   4365 Node: bootp77579
   4366 Node: color78058
   4367 Node: device79532
   4368 Node: dhcp80104
   4369 Node: hide80689
   4370 Node: ifconfig81066
   4371 Node: pager81642
   4372 Node: partnew81976
   4373 Node: parttype82412
   4374 Node: password82779
   4375 Node: rarp83598
   4376 Node: serial83899
   4377 Node: setkey85172
   4378 Node: terminal87341
   4379 Node: terminfo88878
   4380 Node: tftpserver89565
   4381 Node: unhide90111
   4382 Node: Command-line and menu entry commands90486
   4383 Node: blocklist93017
   4384 Node: boot93259
   4385 Node: cat93580
   4386 Node: chainloader93884
   4387 Node: cmp94500
   4388 Node: configfile95051
   4389 Node: debug95265
   4390 Node: displayapm95649
   4391 Node: displaymem95860
   4392 Node: embed96562
   4393 Node: embed-Footnotes97096
   4394 Ref: embed-Footnote-197151
   4395 Node: find97208
   4396 Node: fstest97588
   4397 Node: geometry98273
   4398 Node: halt98885
   4399 Node: help99212
   4400 Node: impsprobe99833
   4401 Node: initrd100232
   4402 Node: install100571
   4403 Node: install-Footnotes103415
   4404 Ref: install-Footnote-1103474
   4405 Node: ioprobe103571
   4406 Node: kernel103896
   4407 Node: lock105016
   4408 Node: makeactive105591
   4409 Node: map105903
   4410 Node: md5crypt106470
   4411 Node: module106817
   4412 Node: modulenounzip107394
   4413 Node: pause107687
   4414 Node: quit108101
   4415 Node: reboot108377
   4416 Node: read108558
   4417 Node: root108800
   4418 Node: rootnoverify109677
   4419 Node: savedefault110232
   4420 Node: setup111208
   4421 Node: testload112274
   4422 Node: testvbe112884
   4423 Node: uppermem113255
   4424 Node: vbeprobe113837
   4425 Node: Troubleshooting114220
   4426 Node: Stage1 errors114758
   4427 Node: Stage1.5 errors116135
   4428 Node: Stage2 errors116573
   4429 Node: Invoking the grub shell124033
   4430 Node: Basic usage124786
   4431 Node: Installation under UNIX127073
   4432 Node: Device map128748
   4433 Node: Invoking grub-install129896
   4434 Node: Invoking grub-md5-crypt131484
   4435 Node: Invoking grub-terminfo132133
   4436 Node: Invoking grub-set-default132899
   4437 Node: Invoking mbchk134700
   4438 Node: Obtaining and Building GRUB135214
   4439 Node: Reporting bugs136631
   4440 Node: Future139435
   4441 Node: Internals139926
   4442 Node: Memory map141149
   4443 Node: Embedded data142627
   4444 Node: Filesystem interface144644
   4445 Node: Command interface148077
   4446 Node: Bootstrap tricks149392
   4447 Node: I/O ports detection151541
   4448 Node: Memory detection151813
   4449 Node: Low-level disk I/O152105
   4450 Node: MBR152374
   4451 Node: Partition table152571
   4452 Node: Submitting patches152844
   4453 Node: Index154332
   4454 
   4455 End Tag Table
   4456