# Solved: grub error 18; Selected cylinder exceeds maximum supported by BIOS



## jrbuergel

The internal Linux and XP do boot fine, but all 5 Linux installed on the external sata drive do not boot, but give grub error 18; "Selected cylinder exceeds maximum supported by BIOS", but the partitions do look okay when viewed from either a windows XP Linux file system tool, or from booted into one of my internal drive Linux and from that newer disk utility, such as in Fedora 13 or 14. After more google searching I did find out that this issue is caused by a limitation in older motherboards BIOS, which my computer is fairly old as a 5-06 Gateway. This limit is that older BIOS will only search for boot files in the first part of the drive. So the solution is either to flash a update into the BIOS, or create a separate boot partition near the beginning of the hard drive. The weird thing is that all my external drive Linux have been booting up just fine for quite some time now.


----------



## saikee

This error has one cure if your 5 Linux are store at the end of a 2TB external hard disk where Grub1 would not be able to access and the cure is to use Grub2. If this isn't your case read on.

However Grub1 has a bug and it is quite common to see this error if you use a Grub1 version newer than the one in the internal hard disk which always boots first. It occurs if you pass the PC control from an older Grub1 to a newer Grub1. Although Grub1 has stopped maintenance after the 0.97 version many distros doctored it for their own purpose and their work may not be thorough.

You could overcome this problem by using the latest Grub1 in the internal hard disk.

If you see Grub prompt with v0.97 it would be the original older version. Those have been doctored show up without a version number displayed.


----------



## jrbuergel

Okay thanks for that help. I had used grub 1 from my older Ubuntu 8.04 installed on my internal hard drive, but I recently did have Ubuntu 10.04 installed also on the internal which had grub 2 on it's root partition boot sector, and then I just installed that grub 2 onto master boot record of the internal drive, and did run update-grub. But now when my external 500 GB sata drive is on and connected by eSATA cable, then my XP will not boot up, ( just a dark screen with no error message), but with that external not turned on, then I can boot my XP. At the grub boot menu, I hit e, it shows this; insmod ntfs, set root= '(hd0,1)', which looks correct since XP is installed on first partition of the internal drive, then shows this; search --no-floppy --fs-uuid --set (some long number), drivemap -s (hd0) $ {root}, chainloader +1, So this XP boot issue may be due to hard drive order and that drive map command used there in grub, right ?


----------



## saikee

Each motherboard has a pre-fixed detection sequence of the Sata controllers. Your eSata may get detected prior to one of your internal sata disks and so hooking the external disk could up set the disk order.

You could choose to override the factory-set disk detection order in the Bios.

To find out if the disk order has been upset you can go into the Grub2 prompt and issue this command


Code:


ls -l

In Grub1 you can only interrogate one disk at a time by command


Code:


geometry (hd0)
geometry (hd1)
etc

Xp will has a NTFS filing system.


----------



## jrbuergel

The internal hard drive is a 200 GB IDE PATA standard type, and I have a add in PCI SATA controller card in it, with jumpers set for only external sata drives.


----------



## jrbuergel

Now I get either a read error when attempting to chainload a Linux on the external drive by the correct grub 2 method, or it just goes to and stops on a blank purple color screen, ( that's the Ubuntu 11.04 grub splash color). Maybe my add in PCI SATA controller card is partially bad ? So since I did all the Linux installs on this external hard drive when connected by eSATA, can I switch my external drive inclosure to USB connection and have the chance of still booting those Linux there?


----------



## saikee

jrbuergel,

If you have installed an OS with a hard disk hooked up via eSata it would be regarded by the Bios as a normal internal hdd.

None of the MS Windows will boot if the same disk is hooked up as a USB external hdd. 

For Linux some do but I expect most won't entertain such a move. This is because when booting from a USB device a driver has to be available and this has to be built into the initrd file. and most distro are not designed to boot from a USB device.


----------



## jrbuergel

When I connected the external drive by USB, 3 out of the 5 Linux did boot up since I chainload to each one's own grub. But now I have all problems fixed with this 500 GB sata drive by installing it into a new hard drive enclosure with eSATA, and did a intall of Fedora 15 on that drive's first partition, then ran the update-grub command for both master records grub 2 installs. So thanks for the help, and I have learned more about the grub 2 boot loader which really helps to trouble shoot problems. That new desktop called Unity is really much different that good old gnome.


----------

