Frequently asked questions
**************************
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
OKUJI Yoshinori 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
`/sbin/grub' (or `/usr/sbin/grub' on older systems), it supports
Logical Block Address (LBA) mode that solves the 1024 cylinders
problem, and `<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.
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.
Can I put Stage2 into a partition which is over 1024 cylinders?
Yes, if your BIOS supports the LBA mode.
How to create a GRUB boot floppy with the menu interface?
The easiest way is:
1. Create filesystem in your floppy disk. For example:
$ mke2fs /dev/fd0
2. Mount it on somewhere, say, `/mnt'.
3. Copy the GRUB images to `/mnt/boot/grub'. Only `stage1',
`stage2' and `menu.lst' are necessary. You may not copy
"stage1.5"s.
4. Run the following command (substitute `/usr/sbin/grub' for
`/sbin/grub' if you are using an older system):
$ /sbin/grub --batch <<EOT
root (fd0)
setup (fd0)
quit
EOT
How to specify a partition?
Note:Device syntax.
GRUB does not recognize my GNU/Hurd partition.
I don't know why, but the authors of FDISK programs have assigned
the partition type `0x63' to GNU Hurd incorrectly. A partition type
should mean what format is used in the partition, such as
filesystem and BSD slices, and should not be used to represent
what operating system owns the partition. So use `0x83' if the
partition contains ext2fs filesystem, and use `0xA5' if the
partition contains ffs filesystem, whether the partition owner is
Hurd or not. We will use `0x63' for GNU Hurd filesystem that has
not been implemented yet.
I've installed a recent version of binutils, but GRUB still crashes.
Please check for the version of your binutils by this command:
ld -v
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:
gcc -Wl,-v 2>&1 | grep "GNU ld"
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:
./configure --with-binutils=/usr/local/bin
If you follow the instructions above but GRUB still crashes,
probably there is a serious bug in GRUB. Note:Reporting bugs.
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:
Adaptec AIC-7880
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).
*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.
How can I specify an arbitrary memory size to Linux?
Pass a `mem=' option to your Linux kernel, like this:
grub> kernel /vmlinuz mem=128M
You may pass other options in the same way. See Note:GNU/Linux,
for more details.
I have a separate boot partition and GRUB doesn't recognize it.
This is often reported as a "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
`/boot' and you install GRUB images into the directory
`/boot/grub', GRUB recognizes that the images lies under the
directory `/grub' but not `/boot/grub'. That's fine, since there
is no guarantee that all of your operating systems mount the same
partition as `/boot'.
There are several solutions for this situation.
1. Install GRUB into the directory `/boot/boot/grub' instead of
`/boot/grub'. This may sound ugly but should work fine.
2. Create a symbolic link before installing GRUB, like `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.
3. Install GRUB with the command `install', to specify the paths
of GRUB images explicitly. Here is an example:
grub> root (hd0,1)
grub> install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst
How to uninstall GRUB from my hard disk drive?
There is no concept "uninstall" in boot loaders, because if you
"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 `FDISK /MBR' on Windows. If you want to install LILO(1)
(Note:FAQ-Footnote-1), run `/sbin/lilo' on GNU/Linux.
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.
Why don't Linux, FreeBSD, NetBSD, etc. become Multiboot-compliant?
Please ask the relevant maintainers. If all free kernels were
Multiboot-compliant (*note Multiboot Specification:
(multiboot)Top.), the world would be an utopia...