diff --git a/ChangeLog b/ChangeLog index e2bcc44f6..81dfc1c78 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2010-07-05 Colin Watson + + * docs/grub.texi (Features): Update list of supported file systems. + (GNU/Linux): Update for GRUB 2. + (Serial terminal): Remove mention of --disable-serial, which was a + GRUB Legacy configure option. Update instructions to use + `terminal_input' and `terminal_output' rather than `terminal'. + (Vendor power-on keys): Copy-edit. Add cross-references to `Simple + configuration' and `Installing GRUB using grub-install'. + (Menu entry editor): Update for GRUB 2. + (terminfo): Add vt100-color, ieee1275, and dumb terminal types. + Document new -a, -u, and -v options. + (initrd): New section. + (initrd16): New section. + (linux): New section. + (linux16): New section. + (search): The `var' argument to `--set' is optional. + (GRUB only offers a rescue shell): Go into a little more detail on + drive ordering. + 2010-07-05 Colin Watson * Makefile.in: Set LINGUAS to empty if ENABLE_NLS is undefined. diff --git a/docs/grub.texi b/docs/grub.texi index cf73a2d38..5d412ecd4 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -332,10 +332,12 @@ devices, partitions, and files in a directory depending on context. @item Support multiple filesystem types Support multiple filesystem types transparently, plus a useful explicit -blocklist notation. The currently supported filesystem types are -@dfn{BSD FFS}, @dfn{DOS FAT16 and FAT32}, @dfn{Minix fs}, @dfn{Linux -ext2fs}, @dfn{ReiserFS}, @dfn{JFS}, @dfn{XFS}, and @dfn{VSTa -fs}. @xref{Filesystem}, for more information. +blocklist notation. The currently supported filesystem types are @dfn{Amiga +Fast FileSystem (AFFS)}, @dfn{AtheOS fs}, @dfn{BeFS}, @dfn{cpio}, @dfn{Linux +ext2/ext3/ext4}, @dfn{DOS FAT12/FAT16/FAT32}, @dfn{HFS}, @dfn{HFS+}, +@dfn{ISO9660}, @dfn{JFS}, @dfn{Minix fs}, @dfn{nilfs2}, @dfn{NTFS}, +@dfn{ReiserFS}, @dfn{Amiga Smart FileSystem (SFS)}, @dfn{tar}, @dfn{UDF}, +@dfn{BSD UFS/UFS2}, and @dfn{XFS}. @xref{Filesystem}, for more information. @item Support automatic decompression Can decompress files which were compressed by @command{gzip}. This @@ -842,11 +844,36 @@ Run the command @command{boot} (@pxref{boot}). It is relatively easy to boot GNU/Linux from GRUB, because it somewhat resembles to boot a Multiboot-compliant OS. -FIXME: this section is incomplete. - @enumerate @item -Set GRUB's root device to the same drive as GNU/Linux's. +Set GRUB's root device to the same drive as GNU/Linux's. The command +@code{search --file --set /vmlinuz} or similar may help you +(@pxref{search}). + +@item +Load the kernel using the command @command{linux} (@pxref{linux}): + +@example +grub> @kbd{linux /vmlinuz root=/dev/sda1} +@end example + +If you need to specify some kernel parameters, just append them to the +command. For example, to set @option{acpi} to @samp{off}, do this: + +@example +grub> @kbd{linux /vmlinuz root=/dev/sda1 acpi=off} +@end example + +See the documentation in the Linux source tree for complete information on +the available options. + +@item +If you use an initrd, execute the command @command{initrd} (@pxref{initrd}) +after @command{linux}: + +@example +grub> @kbd{initrd /initrd} +@end example @item Finally, run the command @command{boot} (@pxref{boot}). @@ -1278,18 +1305,13 @@ minicom. Refer to a manual of your operating system, for more information. As for GRUB, the instruction to set up a serial terminal is quite -simple. First of all, make sure that you haven't specified the option -@option{--disable-serial} to the configure script when you built your -GRUB images. If you get them in binary form, probably they have serial -terminal support already. - -Then, initialize your serial terminal after GRUB starts up. Here is an -example: +simple. Here is an example: @example @group grub> @kbd{serial --unit=0 --speed=9600} -grub> @kbd{terminal serial} +grub> @kbd{terminal_input serial} +grub> @kbd{terminal_output serial} @end group @end example @@ -1317,14 +1339,16 @@ menu requires several fancy features of your terminal. @node Vendor power-on keys @chapter Using GRUB with vendor power-on keys -Some laptop vendor provide an additional power-on button which boots another OS. -GRUB supports such buttons with GRUB_TIMEOUT_BUTTON, GRUB_DEFAULT_BUTTON, -GRUB_HIDDEN_TIMEOUT_BUTTON and GRUB_BUTTON_CMOS_ADDRESS variables in -default/grub. GRUB_TIMEOUT_BUTTON, GRUB_DEFAULT_BUTTON and -GRUB_HIDDEN_TIMEOUT_BUTTON are used instead of corresponding variables without -_BUTTON suffix when powered using special button. -GRUB_BUTTON_CMOS_ADDRESS is vendor specific and partially model-specific. -Values known to GRUB team are: + +Some laptop vendors provide an additional power-on button which boots another +OS. GRUB supports such buttons with the @samp{GRUB_TIMEOUT_BUTTON}, +@samp{GRUB_DEFAULT_BUTTON}, @samp{GRUB_HIDDEN_TIMEOUT_BUTTON} and +@samp{GRUB_BUTTON_CMOS_ADDRESS} variables in default/grub (@pxref{Simple +configuration}). @samp{GRUB_TIMEOUT_BUTTON}, @samp{GRUB_DEFAULT_BUTTON} and +@samp{GRUB_HIDDEN_TIMEOUT_BUTTON} are used instead of the corresponding +variables without the @samp{_BUTTON} suffix when powered on using the special +button. @samp{GRUB_BUTTON_CMOS_ADDRESS} is vendor-specific and partially +model-specific. Values known to the GRUB team are: @table @key @item Dell XPS M1530 @@ -1333,7 +1357,8 @@ Values known to GRUB team are: 84:1 (unconfirmed) @end table -To take full advantage of this function install GRUB into MBR. +To take full advantage of this function, install GRUB into the MBR +(@pxref{Installing GRUB using grub-install}). @node Images @@ -1695,19 +1720,12 @@ of entry names. If an @key{ESC} is pressed in the editor, it aborts all the changes made to the configuration entry and returns to the main menu interface. -When a particular line is selected, the editor places the user in a -special version of the GRUB command-line to edit that line. When the -user hits @key{RET}, GRUB replaces the line in question in the boot -entry with the changes (unless it was aborted via @key{ESC}, -in which case the changes are thrown away). +Each line in the menu entry can be edited freely, and you can add new lines +by pressing @key{RET} at the end of a line. To boot the edited entry, press +@key{Ctrl-x}. -If you want to add a new line to the menu entry, press @key{o} if adding -a line after the current line or press @key{O} if before the current -line. - -To delete a line, hit the key @key{d}. Although GRUB unfortunately -does not support @dfn{undo}, you can do almost the same thing by just -returning to the main menu. +Although GRUB unfortunately does not support @dfn{undo}, you can do almost +the same thing by just returning to the main menu using @key{ESC}. @node Commands @@ -1856,16 +1874,23 @@ names active. @node terminfo @subsection terminfo -@deffn Command terminfo [term] +@deffn Command terminfo [-a|-u|-v] [term] Define the capabilities of your terminal by giving the name of an entry in the terminfo database, which should correspond roughly to a @samp{TERM} environment variable in Unix. -At the moment, only @samp{vt100} is supported in GRUB 2. If you need other -terminal types, please contact us to discuss the best way to include support -for these in GRUB. +The currently available terminal types are @samp{vt100}, @samp{vt100-color}, +@samp{ieee1275}, and @samp{dumb}. If you need other terminal types, please +contact us to discuss the best way to include support for these in GRUB. -If no option is specified, the current terminal type is printed. +The @option{-a} (@option{--ascii}), @option{-u} (@option{--utf8}), and +@option{-v} (@option{--visual-utf8}) options control how non-ASCII text is +displayed. @option{-a} specifies an ASCII-only terminal; @option{-u} +specifies logically-ordered UTF-8; and @option{-v} specifies +visually-ordered UTF-8. + +If no option or terminal type is specified, the current terminal type is +printed. @end deffn @@ -1895,8 +1920,12 @@ you forget a command, you can run the command @command{help} * gptsync:: Fill an MBR based on GPT entries * halt:: Shut down your computer * help:: Show help messages +* initrd:: Load a Linux initrd +* initrd16:: Load a Linux initrd (16-bit mode) * insmod:: Insert a module * keystatus:: Check key modifier status +* linux:: Load a Linux kernel +* linux16:: Load a Linux kernel (16-bit mode) * ls:: List devices or files * parttool:: Modify partition table entries * password:: Set a clear-text password @@ -2203,6 +2232,30 @@ about each of the commands whose names begin with those @var{patterns}. @end deffn +@node initrd +@subsection initrd + +@deffn Command initrd file +Load an initial ramdisk for a Linux kernel image, and set the appropriate +parameters in the Linux setup area in memory. This may only be used after +the @command{linux} command (@pxref{linux}) has been run. See also +@ref{GNU/Linux}. +@end deffn + + +@node initrd16 +@subsection initrd16 + +@deffn Command initrd16 file +Load an initial ramdisk for a Linux kernel image to be booted in 16-bit +mode, and set the appropriate parameters in the Linux setup area in memory. +This may only be used after the @command{linux16} command (@pxref{linux16}) +has been run. See also @ref{GNU/Linux}. + +This command is only available on x86 systems. +@end deffn + + @node insmod @subsection insmod @@ -2225,6 +2278,42 @@ only if checking key modifier status is supported. @end deffn +@node linux +@subsection linux + +@deffn Command linux file @dots{} +Load a Linux kernel image from @var{file}. The rest of the line is passed +verbatim as the @dfn{kernel command-line}. Any initrd must be reloaded +after using this command (@pxref{initrd}). + +On x86 systems, the kernel will be booted using the 32-bit boot protocol. +Note that this means that the @samp{vga=} boot option will not work; if you +want to set a special video mode, you will need to use GRUB commands such as +@samp{set gfxpayload=1024x768} or @samp{set gfxpayload=keep} (to keep the +same mode as used in GRUB) instead. GRUB can automatically detect some uses +of @samp{vga=} and translate them to appropriate settings of +@samp{gfxpayload}. The @command{linux16} command (@pxref{linux16}) avoids +this restriction. +@end deffn + + +@node linux16 +@subsection linux16 + +@deffn Command linux16 file @dots{} +Load a Linux kernel image from @var{file} in 16-bit mode. The rest of the +line is passed verbatim as the @dfn{kernel command-line}. Any initrd must +be reloaded after using this command (@pxref{initrd16}). + +The kernel will be booted using the traditional 16-bit boot protocol. As +well as bypassing problems with @samp{vga=} described in @ref{linux}, this +permits booting some other programs that implement the Linux boot protocol +for the sake of convenience. + +This command is only available on x86 systems. +@end deffn + + @node ls @subsection ls @@ -2337,7 +2426,7 @@ Reboot the computer. @deffn Command search @ [@option{--file}|@option{--label}|@option{--fs-uuid}] @ - [@option{--set} var] [@option{--no-floppy}] name + [@option{--set} [var]] [@option{--no-floppy}] name Search devices by file (@option{-f}, @option{--file}), filesystem label (@option{-l}, @option{--label}), or filesystem UUID (@option{-u}, @option{--fs-uuid}). @@ -2493,6 +2582,9 @@ grub-install}). When doing this, there are a few things to remember: Drive ordering in your operating system may not be the same as the boot drive ordering used by your firmware. Do not assume that your first hard drive (e.g. @samp{/dev/sda}) is the one that your firmware will boot from. +@file{device.map} (@pxref{Device map}) can be used to override this, but it +is usually better to use UUIDs or file system labels and avoid depending on +drive ordering entirely. @item At least on BIOS systems, if you tell @command{grub-install} to install GRUB