I'm sure you have seen many "GRUB Error 21" posts, and I, myself have read a lot of them. But none of them gave me a solution to my problem which I describe below...
Recently I installed Ubuntu 9.04 Jaunty on an External USB hard drive (750 GB Western digital Caviar Black). The 3,5" case in which my HD is placed has very slow response time
, in spite the HD itself is very fast (7200 rpm).
I've made the following partitions
1. GRUB is installed on the right place, the MBR of the sdb (external HD and not my internal one)
are refering to sdbx with their UUID numbers, so the partitions are independent of the sdbx labels ... I tell you that, because I have many usb devices connected, and sometimes labels can be different e.g sdbx --> sdfx
3. I have recompiled the kernel from source, and included support for external USB storage media: CONFIG_USB_STORAGE=y and CONFIG_BLK_DEV_SD=y. In this way the boot process does not fall into ramdisk because of the slow HD response. The kernel already knows about my HD and doesn't have to detect it.
Now! this is how I successfully boot into my ubuntu 9.04.
Assume my PC and my HD are turned off...
First I turn on my external HD, and wait a few seconds
Then, I turn on my PC, press F8 to select boot media (USB: external HD in my case) and the boot menu appears. I select ubuntu 9.04 and everything is fine. I can work with my ubuntu environment.
THE PROBLEM arises when I restart my PC (reboot) from within ubuntu. When I press F8 , and after selecting boot media (USB: external HD) no boot menu appears. Instead I get a black screen with GRUB Error 21 message. No matter how many times I try to reboot, I always get this error. I tried to use doslowusb and scandelay parameters in the menu.lst file, but in vain because the boot process does not reach this stage. (GRUB Error 21 appears after stage 1.5 actually)
What can I do ?
My mobo is an ASUS M3A with AMI BIOS (version 1001). Is it something I could adjust from BIOS ?
P.S. Here is a sample of my menu.lst and fstab files ...
# kopt=root=UUID=a1875a0f-91a8-4ca2-9b24-ca82d3a42d51 ro
title Ubuntu 9.04, kernel 18.104.22.168-custom
kernel /vmlinuz-22.214.171.124-custom root=UUID=a1875a0f-91a8-4ca2-9b24-ca82d3a42d51 ro scandelay loglevel=3 splash
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
UUID=a1875a0f-91a8-4ca2-9b24-ca82d3a42d51 / ext3 relatime,errors=remount-ro 0 1
UUID=011b8e92-d253-4adf-9e2d-ca61def41c66 /boot ext3 relatime 0 2
UUID=63c48326-e6f3-477c-9fd2-cc67f94dc943 /home ext3 relatime 0 2
UUID=8d124f03-1b12-4db4-afde-36350b9c3a5d /tmp ext3 relatime 0 2
UUID=d5ef0f32-ff54-4ec4-98e8-71e1d3d97123 /var ext3 relatime 0 2
UUID=67b25321-62ac-4a7c-8cca-fac2788b844e none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0