Node:FAQ, Next:, Previous:Invoking mbchk, Up:Top



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 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 /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.5s.
  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?
See 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 the GNU Hurd incorrectly. So use 0x83 if the partition contains ext2fs filesystem, and use 0xA5 if the partition contains ffs filesystem, whether the partition owner is the Hurd or not. We will use 0x63 for the 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. See 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 See 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 LILO1, 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 (see Multiboot Specification), the world would be an utopia...

Footnotes

  1. I can't imagine why you want to do such a thing, though