Issue with Linux is the kernel must be installed below cylinder 1024; nothing to do with GRUB per se. The BIOS is used to load the kernel, but once Linux is started, BIOS is
not use anymore and only Linux code is used to access the HD.
Error 18: Selected cylinder exceeds maximum supported by BIOS
This error is returned when a read is attempted at a linear block address beyond the end of the BIOS translated area. This generally happens if your disk is larger than the BIOS can handle (512MB for (E)IDE disks on older machines or larger than 8GB on others.). In more practical terms this means the BIOS is unable to start executing the kernel because the kernel is not located within the block it can access at boot up time.
This can be circumvented by creating a boot partition at the beginning of the disk that is completely within the first 1023 cylinders of the harddrive. This partition will contain the kernel.
Use a product like Partition Magic to
- create the first partition for Linux use(#)
- Then place the swap partition following it.
- the Windows {xp,vista, ...} then follow
note:# The kernel is in the / (ie root) partition. Users can be place in another
partition which gets automounted at boot time ( mount point /home ) and it can be
way up at the top of the disk (ie after Windows).