I found some instructions on this here:
But they don't seem to work. Here's the lowdown:
Hardware is an older Dell laptop. It has an SD card slot but doesn't support booting from SD. I've been told grub can chainload another bootloader on another drive. What I want to do is have it chainload the bootloader on my SD card.
Software is Ubuntu 10.10. For testing purposes I have loaded the same version on both the hard drive and SD card, so they use the same kernel.
My hard drive is sda and is partitioned as follows:
sda2 NTFS partition for sharing files between OS
sda3 ext3 /boot
sda5 LVM volume containing 4 smaller volumes, one each for / /var /swap /home
SD card shows as sdc when plugged into a USB SD reader and /media/mmc(long string of numbers) when in the internal slot.
sdc1 ext3 /boot
sdc5 ext3 /
I have downgraded grub2 to grub legacy since there is more documentation and it is easier to understand. Grub legacy is loaded on MBR of both sda and sdc. I edited the menu.lst on sda to create an entry to point to the UUID of sdc. I just copied the entry from the menu.lst on sdc. Since the versions are the same they use the same vmlinuz and initrd files already found in sda1.
I added the following lines to my initramfs-tools/modules file on sda: mmc_core, mmc_block, sdhc, sdhc_pci then rebuilt the initrd. lsmod shows the modules as loaded on boot. Everything boots fine when the SD is plugged into the USB SD reader. I can boot from grub on sdc or chainload it into sdc from sda. Both boot into the SD card when its in the USB dongle. When its in the internal SD card slot, neither boots and I get Error 15 file not found.
I've tried specifying the full path to the kernel in menu.lst, ie (hd0,2)/vmlinuz.x.y.z.img The idea being if I load the kernel from sda3 (hd0,2) it can load the rest of the files from the sd card at that point, but it doesn't happen.
My research so far has suggested Error 15 relates to a missing stage2 grub loader. The instructions I followed said the only files I needed to copy from sdc to sda were the initrd and vmlinuz but then suggested to be on the safe side to copy all of /boot. I did not do this because I didn't want to overwrite my existing stage1 and stage2 files which would make my sda unbootable. Is there a way to have 2 sets of these? Is there something else I'm overlooking?