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
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:
Create filesystem in your floppy disk. For example:
$ mke2fs /dev/fd0
Mount it on somewhere, say, `/mnt'.
Copy the GRUB images to `/mnt/boot/grub'. Only `stage1',
`stage2' and `menu.lst' are necessary. You may not copy
Run the following command (substitute `/usr/sbin/grub' for
`/sbin/grub' if you are using an older system):
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:
This will show two versions, but only the latter is important. If the
version is identical with what you have installed, the installation was
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,
If you follow the instructions above but GRUB still crashes, probably
there is a serious bug in GRUB. See section C. 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:
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
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 See section 4.2.2 GNU/Linux, for
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.
Install GRUB into the directory `/boot/boot/grub' instead of
`/boot/grub'. This may sound ugly but should work fine.
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.
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
For example, if you want to install the boot loader for Windows, just
run FDISK /MBR on Windows. If you want to install LILO(10), 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
Why don't Linux, FreeBSD, NetBSD, etc. become Multiboot-compliant?
Please ask the relevant maintainers. If all free kernels were
Multiboot-compliant (see section `Motivation' in The Multiboot Specification), the world would be an