In OpenSuSE, go to the directory where GRUB is installed, probably /boot/grub. In that directory open the file
device.map to see where GRUB considers your current hardware set-up. Check what HD number is given to /dev/sda and remember it. If you do not see it in the
device.map file, then you'll have to tell GRUB to regenerate the device.map file (see below). Open up /boot/grub/grub.conf for editing, as root. We'll just add three new lines for DSL (you can remove the comments):
title DSL
# replace "hd0,0" with the location of the SD card
# View http://gentoo-wiki.com/HOWTO_Quick_GRUB#Step_2:_The_GRUB_Prompt for more info concerning HD numbering
# Also, replace "/boot/kernel" with the actual path to the DSL Kernel
kernel (hd0,0)/boot/kernel root=/dev/sda1
# replace "/boot/initrd" with the actual path to the DSL initramfs file
initrd /boot/initrd
Save, restart and see if it boots DSL. If it doesn't, then double check all paths.
[hr=noshade] [/hr]
If device.map does not show your SD card position, then do the following:
In order to invoke GRUB, you have to be in a chroot environment:
sudo chroot /
You need to remove the current device.map file, but we'll back it up instead, just in case (assuming it's located at /boot/grub/device.map):
mv /boot/grub/device.map /boot/grub/device.map.backup
Now make sure your SD card is plugged in. Then we tell GRUB to regenerate the device map (assuming device.map was located at /boot/grub/device.map):
grub --device-map=/boot/grub/device.map
Then exit completely.