@node FAQ @appendix Frequently asked questions @table @asis @item How does GNU GRUB differ from Erich's original GRUB? GNU GRUB is the successor of Erich's great GRUB. He couldn't work on GRUB because of some other tasks, so the current maintainer Gordon Matzigkeit took over the maintainership, and opened the development in order for everybody to participate it. Technically speaking, GNU GRUB has many features that are not seen in the original GRUB. For example, GNU GRUB can be installed on UNIX-like operating system (such as GNU/Linux) via the grub shell @file{/sbin/grub}, it supports Logical Block Address (LBA) mode that solves the 1024 cylinders problem, and @kbd{@key{TAB}} completes a filename when it's unique. Of course, many bug fixes are done as well, so it is recommended to use GNU GRUB. @item Can GRUB boot my operating system from over 8GB hard disks? That depends on your BIOS and your operating system. You must make sure that your drive is accessible in LBA mode. Generally, that is configurable in BIOS setting utility. Read the manual for your BIOS for more information. Furthermore, some operating systems (i.e. DOS) cannot access any large disk, so the problem is not solved by any kind of boot loader. GNU/Hurd and GNU/Linux can surely boot from such a large disk. @item Can I put Stage2 into a partition which is over 1024 cylinders? Yes, if your BIOS supports the LBA mode. @item How to create a GRUB boot floppy with the menu interface? The easiest way is: @enumerate @item Create filesystem in your floppy disk. For example: @example $ mke2fs /dev/fd0 @end example @item Mount it on somewhere, say, @file{/mnt}. @item Copy the GRUB images to @file{/mnt/boot/grub}. Only @file{stage1}, @file{stage2} and @file{menu.lst} are necessary. You may not copy @dfn{stage1.5}s. @item Run the following command: @example $ /sbin/grub --batch <&1 | grep "GNU ld" @end example If this is not identical with the result above, you should specify the directory where you have installed binutils for the script configure, like this: @example $ ./configure --with-binutils=/usr/local/bin @end example If you follow the instructions above but GRUB still crashes, probably there is a serious bug in GRUB. @xref{Reporting bugs}. @item GRUB hangs up when accessing my SCSI disk. Check if you have turned on the support for INT 13 extension (LBA). If so, disable the support and see if GRUB can now access your SCSI disk. This will make it clear that your SCSI BIOS sucks. For now, we know the following doesn't provide working LBA mode: @table @asis @item Adaptec AIC-7880 @end table In the case where you have such a SCSI controller unfortunately, you cannot use the LBA mode, though GRUB still works fine in the CHS mode (so the well-known 1024 cylinders problem comes again to you). @strong{Caution:} Actually it has not been verified yet if this bug is due to the SCSI BIOS or GRUB itself, frankly speaking. Because the developers haven't seen it by their own eyes. This is why it is desirable that you investigate the cause seriously if you have the skill. @item Why don't Linux, FreeBSD, NetBSD, etc. become Multiboot-compliant? Please ask the relevant maintainers. If all free kernels were Multiboot-compliant (@pxref{Top, Multiboot Specification, Motivation, multiboot, The Multiboot Specification}), the world would be an utopia@dots{} @end table @node Obtaining and Building GRUB @appendix How to obtain and build GRUB @quotation @strong{Caution:} GRUB requires binutils-2.9.1.0.23 or later because the GNU assembler has been changed so that it can produce real 16bits machine code between 2.9.1 and 2.9.1.0.x. The latest version can be obtained from: @url{ftp://ftp.varesearch.com/pub/support/hjl/binutils/} @end quotation @c Do not change alpha.gnu.org:/gnu/grub to the URI, since TeX does @c not format it well. GRUB is available from the GNU alpha archive site @url{alpha.gnu.org:/gnu/grub} or any of its mirrors. The file will be named grub-version.tar.gz. The current version is @value{VERSION}, so the file you should grab is: @url{ftp://alpha.gnu.org/gnu/grub/grub-@value{VERSION}.tar.gz} To unbundle GRUB use the instruction: @example zcat grub-@value{VERSION}.tar.gz | tar xvf - @end example which will create a directory called @file{guile-@value{VERSION}} with all the sources. You can look at the file @file{INSTALL} for detailed instructions on how to build and install GRUB, but you should be able to just do: @example @group $ cd grub-@value{VERSION} $ ./configure $ make install @end group @end example This will install the grub shell @file{grub} (@pxref{Invoking the grub shell}), the Multiboot checker @file{mbchk} (@pxref{Invoking mbchk}), and the GRUB images It will also install the GRUB manual. Also, the latest version is available from the CVS. The repository is: @code{:pserver:anoncvs@@subversions.gnu.org:/home/cvs} and the module is: @code{grub} The password for anoncvs is empty. So the instruction is: @example @group $ cvs -d :pserver:anoncvs@@subversions.gnu.org:/home/cvs \ login Password: @key{ENTER} $ cvs -d :pserver:anoncvs@@subversions.gnu.org:/home/cvs \ checkout grub @end group @end example Get the recent version of GNU Automake from the CVS to regenerate @file{Makefile.in}s. See @url{http://sourceware.cygnus.com/automake/}, for more information. @node Reporting bugs @appendix Reporting bugs When you encounter any problem or bug, please submit it to @email{bug-grub@@gnu.org} with information about your computer and what you did @emph{as much as possible}. Take a look at this list before you send e-mail to the address: @itemize @bullet @item Write what you did and what messages were printed on the screen in detail. Don't paraphrase them. Please describe them as they were. @item Explain what you wanted to do. It is very useful to know your purpose and your wish, and how GRUB didn't satisfy you. @item Inform us of the information about your GRUB. What version were you using? Which were you using the grub shell or the boot images? If using the grub shell, tell us what operating system was used to run it. And, if you ran @command{configure} with some options when building GRUB, it would be a good thing to let us know how to build it. @item The information on your hardware is also essential. These are especially important: the geometries and the partition tables of your hard disk drives and your BIOS. @item Write down anything that you think might be related. If you are not sure whether to state a fact or leave it out, state it! Reporting too many things is quite better than omitting an important thing. @end itemize @node Index @unnumbered Index @c Currently, we use only the Concept Index. @printindex cp