* docs/grub.texi (Configuration): New section, documenting
configuration file generation using grub-mkconfig. I've left a slot for documenting the full shell scripting format but have not yet started on writing that up. (Invoking grub-mkconfig): New section.
This commit is contained in:
parent
34c9f0e949
commit
288dd6ed3d
2 changed files with 228 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2010-06-02 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
|
* docs/grub.texi (Configuration): New section, documenting
|
||||||
|
configuration file generation using grub-mkconfig. I've left a slot
|
||||||
|
for documenting the full shell scripting format but have not yet
|
||||||
|
started on writing that up.
|
||||||
|
(Invoking grub-mkconfig): New section.
|
||||||
|
|
||||||
2010-06-02 Colin Watson <cjwatson@ubuntu.com>
|
2010-06-02 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* docs/grub.texi (direntry): Remove grub-terminfo reference.
|
* docs/grub.texi (direntry): Remove grub-terminfo reference.
|
||||||
|
|
221
docs/grub.texi
221
docs/grub.texi
|
@ -20,7 +20,7 @@
|
||||||
This manual is for GNU GRUB (version @value{VERSION},
|
This manual is for GNU GRUB (version @value{VERSION},
|
||||||
@value{UPDATED}).
|
@value{UPDATED}).
|
||||||
|
|
||||||
Copyright @copyright{} 1999,2000,2001,2002,2004,2006,2008,2009 Free Software Foundation, Inc.
|
Copyright @copyright{} 1999,2000,2001,2002,2004,2006,2008,2009,2010 Free Software Foundation, Inc.
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
|
@ -34,6 +34,7 @@ Invariant Sections.
|
||||||
@direntry
|
@direntry
|
||||||
* GRUB: (grub). The GRand Unified Bootloader
|
* GRUB: (grub). The GRand Unified Bootloader
|
||||||
* grub-install: (grub)Invoking grub-install. Install GRUB on your drive
|
* grub-install: (grub)Invoking grub-install. Install GRUB on your drive
|
||||||
|
* grub-mkconfig: (grub)Invoking grub-mkconfig. Generate GRUB configuration
|
||||||
@end direntry
|
@end direntry
|
||||||
|
|
||||||
@setchapternewpage odd
|
@setchapternewpage odd
|
||||||
|
@ -86,6 +87,7 @@ This edition documents version @value{VERSION}.
|
||||||
* Troubleshooting:: Error messages produced by GRUB
|
* Troubleshooting:: Error messages produced by GRUB
|
||||||
* Invoking the grub shell:: How to use the grub shell
|
* Invoking the grub shell:: How to use the grub shell
|
||||||
* Invoking grub-install:: How to use the GRUB installer
|
* Invoking grub-install:: How to use the GRUB installer
|
||||||
|
* Invoking grub-mkconfig:: Generate a GRUB configuration file
|
||||||
* Obtaining and Building GRUB:: How to obtain and build GRUB
|
* Obtaining and Building GRUB:: How to obtain and build GRUB
|
||||||
* Reporting bugs:: Where you should send a bug report
|
* Reporting bugs:: Where you should send a bug report
|
||||||
* Future:: Some future plans on GRUB
|
* Future:: Some future plans on GRUB
|
||||||
|
@ -694,6 +696,197 @@ the size, run the command @command{uppermem} @emph{before} loading the
|
||||||
kernel. @xref{uppermem}, for more information.
|
kernel. @xref{uppermem}, for more information.
|
||||||
|
|
||||||
|
|
||||||
|
@node Configuration
|
||||||
|
@chapter Writing your own configuration file
|
||||||
|
|
||||||
|
GRUB is configured using @file{grub.cfg}, usually located under
|
||||||
|
@file{/boot/grub}. This file is quite flexible, but most users will not
|
||||||
|
need to write the whole thing by hand.
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Simple configuration:: Recommended for most users
|
||||||
|
* Shell-like scripting:: For power users and developers
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
@node Simple configuration
|
||||||
|
@section Simple configuration handling
|
||||||
|
|
||||||
|
The program @command{grub-mkconfig} (@pxref{Invoking grub-mkconfig})
|
||||||
|
generates @file{grub.cfg} files suitable for most cases. It is suitable for
|
||||||
|
use when upgrading a distribution, and will discover available kernels and
|
||||||
|
attempt to generate menu entries for them.
|
||||||
|
|
||||||
|
The file @file{/etc/default/grub} controls the operation of
|
||||||
|
@command{grub-mkconfig}. It is sourced by a shell script, and so must be
|
||||||
|
valid POSIX shell input; normally, it will just be a sequence of
|
||||||
|
@samp{KEY=value} lines, but if the value contains spaces or other special
|
||||||
|
characters then it must be quoted. For example:
|
||||||
|
|
||||||
|
@example
|
||||||
|
GRUB_TERMINAL_INPUT="console serial"
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Valid keys in @file{/etc/default/grub} are as follows:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item GRUB_DEFAULT
|
||||||
|
The default menu entry. This may be a number, in which case it identifies
|
||||||
|
the Nth entry in the generated menu counted from zero, or the full name of a
|
||||||
|
menu entry, or the special string @samp{saved}. Using the full name may be
|
||||||
|
useful if you want to set a menu entry as the default even though there may
|
||||||
|
be a variable number of entries before it.
|
||||||
|
|
||||||
|
If you set this to @samp{saved}, then the default menu entry will be that
|
||||||
|
saved by @samp{GRUB_SAVEDEFAULT}, @command{grub-set-default}, or
|
||||||
|
@command{grub-reboot}.
|
||||||
|
|
||||||
|
The default is @samp{0}.
|
||||||
|
|
||||||
|
@item GRUB_SAVEDEFAULT
|
||||||
|
If this option is set to @samp{true}, then, when an entry is selected, save
|
||||||
|
it as a new default entry for use by future runs of GRUB. This is only
|
||||||
|
useful if @samp{GRUB_DEFAULT=saved}; it is a separate option because
|
||||||
|
@samp{GRUB_DEFAULT=saved} is useful without this option, in conjunction with
|
||||||
|
@command{grub-set-default} or @command{grub-reboot}. Unset by default.
|
||||||
|
|
||||||
|
@item GRUB_TIMEOUT
|
||||||
|
Boot the default entry this many seconds after the menu is displayed, unless
|
||||||
|
a key is pressed. The default is @samp{5}. Set to @samp{0} to boot
|
||||||
|
immediately without displaying the menu, or to @samp{-1} to wait
|
||||||
|
indefinitely.
|
||||||
|
|
||||||
|
@item GRUB_HIDDEN_TIMEOUT
|
||||||
|
Wait this many seconds for a key to be pressed before displaying the menu.
|
||||||
|
If no key is pressed during that time, boot immediately. Unset by default.
|
||||||
|
|
||||||
|
@item GRUB_HIDDEN_TIMEOUT_QUIET
|
||||||
|
In conjunction with @samp{GRUB_HIDDEN_TIMEOUT}, set this to @samp{true} to
|
||||||
|
suppress the verbose countdown while waiting for a key to be pressed before
|
||||||
|
displaying the menu. Unset by default.
|
||||||
|
|
||||||
|
@item GRUB_DEFAULT_BUTTON
|
||||||
|
@itemx GRUB_TIMEOUT_BUTTON
|
||||||
|
@itemx GRUB_HIDDEN_TIMEOUT_BUTTON
|
||||||
|
@itemx GRUB_BUTTON_CMOS_ADDRESS
|
||||||
|
Variants of the corresponding variables without the @samp{_BUTTON} suffix,
|
||||||
|
used to support vendor-specific power buttons. @xref{Vendor power-on keys}.
|
||||||
|
|
||||||
|
@item GRUB_DISTRIBUTOR
|
||||||
|
Set by distributors of GRUB to their identifying name. This is used to
|
||||||
|
generate more informative menu entry titles.
|
||||||
|
|
||||||
|
@item GRUB_TERMINAL_INPUT
|
||||||
|
Select the terminal input device. You may select multiple devices here,
|
||||||
|
separated by spaces.
|
||||||
|
|
||||||
|
Valid terminal input names depend on the platform, but may include
|
||||||
|
@samp{console} (PC BIOS and EFI consoles), @samp{serial} (serial terminal),
|
||||||
|
@samp{ofconsole} (Open Firmware console), @samp{at_keyboard} (PC AT
|
||||||
|
keyboard, mainly useful with Coreboot), or @samp{usb_keyboard} (USB keyboard
|
||||||
|
using the HID Boot Protocol, for cases where the firmware does not handle
|
||||||
|
this).
|
||||||
|
|
||||||
|
The default is to use the platform's native terminal input.
|
||||||
|
|
||||||
|
@item GRUB_TERMINAL_OUTPUT
|
||||||
|
Select the terminal output device. You may select multiple devices here,
|
||||||
|
separated by spaces.
|
||||||
|
|
||||||
|
Valid terminal output names depend on the platform, but may include
|
||||||
|
@samp{console} (PC BIOS and EFI consoles), @samp{serial} (serial terminal),
|
||||||
|
@samp{gfxterm} (graphics-mode output), @samp{ofconsole} (Open Firmware
|
||||||
|
console), or @samp{vga_text} (VGA text output, mainly useful with Coreboot).
|
||||||
|
|
||||||
|
The default is to use the platform's native terminal input.
|
||||||
|
|
||||||
|
@item GRUB_TERMINAL
|
||||||
|
If this option is set, it overrides both @samp{GRUB_TERMINAL_INPUT} and
|
||||||
|
@samp{GRUB_TERMINAL_OUTPUT} to the same value.
|
||||||
|
|
||||||
|
@item GRUB_SERIAL_COMMAND
|
||||||
|
A command to configure the serial port when using the serial console.
|
||||||
|
@xref{serial}. Defaults to @samp{serial}.
|
||||||
|
|
||||||
|
@item GRUB_CMDLINE_LINUX
|
||||||
|
Command-line arguments to add to menu entries for the Linux kernel.
|
||||||
|
|
||||||
|
@item GRUB_CMDLINE_LINUX_DEFAULT
|
||||||
|
Unless @samp{GRUB_DISABLE_LINUX_RECOVERY} is set, two menu entries will be
|
||||||
|
generated for each Linux kernel: one default entry and one entry for
|
||||||
|
recovery mode. This option lists command-line arguments to add only to the
|
||||||
|
default menu entry, after those listed in @samp{GRUB_CMDLINE_LINUX}.
|
||||||
|
|
||||||
|
@item GRUB_CMDLINE_NETBSD
|
||||||
|
@itemx GRUB_CMDLINE_NETBSD_DEFAULT
|
||||||
|
As @samp{GRUB_CMDLINE_LINUX} and @samp{GRUB_CMDLINE_LINUX_DEFAULT}, but for
|
||||||
|
NetBSD.
|
||||||
|
|
||||||
|
@item GRUB_DISABLE_LINUX_UUID
|
||||||
|
Normally, @command{grub-mkconfig} will generate menu entries that use
|
||||||
|
universally-unique identifiers (UUIDs) to identify the root filesystem to
|
||||||
|
the Linux kernel, using a @samp{root=UUID=...} kernel parameter. This is
|
||||||
|
usually more reliable, but in some cases it may not be appropriate. To
|
||||||
|
disable the use of UUIDs, set this option to @samp{true}.
|
||||||
|
|
||||||
|
@item GRUB_DISABLE_LINUX_RECOVERY
|
||||||
|
Disable the generation of recovery mode menu entries for Linux.
|
||||||
|
|
||||||
|
@item GRUB_DISABLE_NETBSD_RECOVERY
|
||||||
|
Disable the generation of recovery mode menu entries for NetBSD.
|
||||||
|
|
||||||
|
@item GRUB_GFXMODE
|
||||||
|
Set the resolution used on the @samp{gfxterm} graphical terminal. Note that
|
||||||
|
you can only use modes which your graphics card supports via VESA BIOS
|
||||||
|
Extensions (VBE), so for example native LCD panel resolutions may not be
|
||||||
|
available. The default is @samp{640x480}.
|
||||||
|
|
||||||
|
@item GRUB_BACKGROUND
|
||||||
|
Set a background image for use with the @samp{gfxterm} graphical terminal.
|
||||||
|
The value of this option must be a file readable by GRUB at boot time, and
|
||||||
|
it must end with @file{.png}, @file{.tga}, @file{.jpg}, or @file{.jpeg}.
|
||||||
|
The image will be scaled if necessary to fit the screen.
|
||||||
|
|
||||||
|
@item GRUB_THEME
|
||||||
|
Set a theme for use with the @samp{gfxterm} graphical terminal.
|
||||||
|
@xref{Themes}.
|
||||||
|
|
||||||
|
@item GRUB_GFXPAYLOAD_LINUX
|
||||||
|
Set to @samp{text} to force the Linux kernel to boot in normal text mode,
|
||||||
|
@samp{keep} to preserve the graphics mode set using @samp{GRUB_GFXMODE},
|
||||||
|
@samp{@var{width}x@var{height}}[@samp{x@var{depth}}] to set a particular
|
||||||
|
graphics mode, or a sequence of these separated by commas or semicolons to
|
||||||
|
try several modes in sequence.
|
||||||
|
|
||||||
|
Depending on your kernel, your distribution, your graphics card, and the
|
||||||
|
phase of the moon, note that using this option may cause GNU/Linux to suffer
|
||||||
|
from various display problems, particularly during the early part of the
|
||||||
|
boot sequence. If you have problems, simply unset this option and GRUB will
|
||||||
|
tell Linux to boot in normal text mode.
|
||||||
|
|
||||||
|
@item GRUB_DISABLE_OS_PROBER
|
||||||
|
Normally, @command{grub-mkconfig} will try to use the external
|
||||||
|
@command{os-prober} program, if installed, to discover other operating
|
||||||
|
systems installed on the same system and generate appropriate menu entries
|
||||||
|
for them. Set this option to @samp{true} to disable this.
|
||||||
|
|
||||||
|
@item GRUB_INIT_TUNE
|
||||||
|
Play a tune on the speaker when GRUB starts. This is particularly useful
|
||||||
|
for users unable to see the screen. The value of this option is passed
|
||||||
|
directly to @ref{play}.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
For more detailed customisation of @command{grub-mkconfig}'s output, you may
|
||||||
|
edit the scripts in @file{/etc/grub.d} directly.
|
||||||
|
@file{/etc/grub.d/40_custom} is particularly useful for adding entire custom
|
||||||
|
menu entries; simply type the menu entries you want to add at the end of
|
||||||
|
that file, making sure to leave at least the first two lines intact.
|
||||||
|
|
||||||
|
|
||||||
|
@node Shell-like scripting
|
||||||
|
@section Writing full configuration files directly
|
||||||
|
|
||||||
|
|
||||||
@node Serial terminal
|
@node Serial terminal
|
||||||
@chapter Using GRUB via a serial line
|
@chapter Using GRUB via a serial line
|
||||||
|
|
||||||
|
@ -1499,6 +1692,32 @@ into/from your computer.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@node Invoking grub-mkconfig
|
||||||
|
@chapter Invoking grub-mkconfig
|
||||||
|
|
||||||
|
The program @command{grub-mkconfig} generates a configuration file for GRUB
|
||||||
|
(@pxref{Simple configuration}).
|
||||||
|
|
||||||
|
@example
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@command{grub-mkconfig} accepts the following options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item --help
|
||||||
|
Print a summary of the command-line options and exit.
|
||||||
|
|
||||||
|
@item --version
|
||||||
|
Print the version number of GRUB and exit.
|
||||||
|
|
||||||
|
@item -o @var{file}
|
||||||
|
@itemx --output=@var{file}
|
||||||
|
Send the generated configuration file to @var{file}. The default is to send
|
||||||
|
it to standard output.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
@node Obtaining and Building GRUB
|
@node Obtaining and Building GRUB
|
||||||
@appendix How to obtain and build GRUB
|
@appendix How to obtain and build GRUB
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue