110 |
* Invoking grub-install:: How to use the GRUB installer |
* Invoking grub-install:: How to use the GRUB installer |
111 |
* Invoking grub-md5-crypt:: How to generate a cryptic password |
* Invoking grub-md5-crypt:: How to generate a cryptic password |
112 |
* Invoking mbchk:: How to use the Multiboot checker |
* Invoking mbchk:: How to use the Multiboot checker |
|
* FAQ:: Frequently asked questions |
|
113 |
* Obtaining and Building GRUB:: How to obtain and build GRUB |
* Obtaining and Building GRUB:: How to obtain and build GRUB |
114 |
* Reporting bugs:: Where you should send a bug report |
* Reporting bugs:: Where you should send a bug report |
115 |
* Future:: Some future plans on GRUB |
* Future:: Some future plans on GRUB |
3412 |
@end table |
@end table |
3413 |
|
|
3414 |
|
|
|
@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 maintainers Yoshinori |
|
|
K. Okuji and 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/Hurd) via the grub shell |
|
|
@file{/sbin/grub} (or @file{/usr/sbin/grub} on older systems), it |
|
|
supports Logical Block Address (LBA) mode that solves the 1024 cylinders |
|
|
problem, and @kbd{@key{TAB}} completes a file name 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 (substitute @file{/usr/sbin/grub} for |
|
|
@file{/sbin/grub} if you are using an older system): |
|
|
|
|
|
@example |
|
|
@group |
|
|
$ /sbin/grub --batch <<EOT |
|
|
root (fd0) |
|
|
setup (fd0) |
|
|
quit |
|
|
EOT |
|
|
@end group |
|
|
@end example |
|
|
@end enumerate |
|
|
|
|
|
@item How to specify a partition? |
|
|
|
|
|
@xref{Device syntax}. |
|
|
|
|
|
@item GRUB does not recognize my GNU/Hurd partition. |
|
|
|
|
|
I don't know why, but the authors of FDISK programs have assigned the |
|
|
partition type @samp{0x63} to the GNU Hurd incorrectly. So use |
|
|
@samp{0x83} if the partition contains ext2fs filesystem, and use |
|
|
@samp{0xA5} if the partition contains ffs filesystem, whether the |
|
|
partition owner is the Hurd or not. We will use @samp{0x63} for the |
|
|
GNU Hurd filesystem that has not been implemented yet. |
|
|
|
|
|
@item I've installed a recent version of binutils, but GRUB still crashes. |
|
|
|
|
|
Please check for the version of your binutils by this command: |
|
|
|
|
|
@example |
|
|
@kbd{ld -v} |
|
|
@end example |
|
|
|
|
|
This will show two versions, but only the latter is important. If the |
|
|
version is identical with what you have installed, the installation was |
|
|
not bad. |
|
|
|
|
|
Well, please try: |
|
|
|
|
|
@example |
|
|
@kbd{gcc -Wl,-v 2>&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 |
|
|
@kbd{./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 How can I specify an arbitrary memory size to Linux? |
|
|
|
|
|
Pass a @samp{mem=} option to your Linux kernel, like this: |
|
|
|
|
|
@example |
|
|
grub> @kbd{kernel /vmlinuz mem=128M} |
|
|
@end example |
|
|
|
|
|
You may pass other options in the same way. See @xref{GNU/Linux}, for |
|
|
more details. |
|
|
|
|
|
@item I have a separate boot partition and GRUB doesn't recognize it. |
|
|
|
|
|
This is often reported as a @dfn{bug}, but this is not a bug |
|
|
really. This is a feature. |
|
|
|
|
|
Because GRUB is a boot loader and it normally runs under no operating |
|
|
system, it doesn't know where a partition is mounted under your |
|
|
operating systems. So, if you have the partition @file{/boot} and you |
|
|
install GRUB images into the directory @file{/boot/grub}, GRUB |
|
|
recognizes that the images lies under the directory @file{/grub} but not |
|
|
@file{/boot/grub}. That's fine, since there is no guarantee that all of |
|
|
your operating systems mount the same partition as @file{/boot}. |
|
|
|
|
|
There are several solutions for this situation. |
|
|
|
|
|
@enumerate |
|
|
@item |
|
|
Install GRUB into the directory @file{/boot/boot/grub} instead of |
|
|
@file{/boot/grub}. This may sound ugly but should work fine. |
|
|
|
|
|
@item |
|
|
Create a symbolic link before installing GRUB, like @samp{cd /boot && ln |
|
|
-s . boot}. This works only if the filesystem of the boot partition |
|
|
supports symbolic links and GRUB supports the feature as well. |
|
|
|
|
|
@item |
|
|
Install GRUB with the command @command{install}, to specify the paths of |
|
|
GRUB images explicitly. Here is an example: |
|
|
|
|
|
@example |
|
|
@group |
|
|
grub> @kbd{root (hd0,1)} |
|
|
grub> @kbd{install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst} |
|
|
@end group |
|
|
@end example |
|
|
@end enumerate |
|
|
|
|
|
@item How to uninstall GRUB from my hard disk drive? |
|
|
|
|
|
There is no concept @dfn{uninstall} in boot loaders, because if you |
|
|
@dfn{uninstall} a boot loader, an unbootable machine would simply |
|
|
remain. So all you need to do is overwrite another boot loader you like |
|
|
to your disk, that is, install the boot loader without uninstalling |
|
|
GRUB. |
|
|
|
|
|
For example, if you want to install the boot loader for Windows, just |
|
|
run @code{FDISK /MBR} on Windows. If you want to install LILO@footnote{I |
|
|
can't imagine why you want to do such a thing, though}, run |
|
|
@code{/sbin/lilo} on GNU/Linux. |
|
|
|
|
|
@item GRUB hangs when accessing my large IDE disk. |
|
|
|
|
|
If your disk is bigger than 32GB, probably updating your mainboard BIOS |
|
|
will solve your problem. This bug is well-known and most vendors should |
|
|
provide fixed versions. For example, if you have ASUS-P3BF, upgrading |
|
|
the BIOS to V1007beta1 or later can fix it. Please ask your vendor, for |
|
|
more information. |
|
|
|
|
|
@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 |
|
|
|
|
|
|
|
3415 |
@node Obtaining and Building GRUB |
@node Obtaining and Building GRUB |
3416 |
@appendix How to obtain and build GRUB |
@appendix How to obtain and build GRUB |
3417 |
|
|
3480 |
|
|
3481 |
@enumerate |
@enumerate |
3482 |
@item |
@item |
3483 |
Before unsettled, read this manual through and through, in particular |
Before unsettled, read this manual through and through. Also, see the |
3484 |
@xref{FAQ}. |
@uref{http://www.gnu.org/software/grub/grub-faq.html, GNU GRUB FAQ}. |
3485 |
|
|
3486 |
@item |
@item |
3487 |
Always mention the information on your GRUB. The version number and the |
Always mention the information on your GRUB. The version number and the |