I'm not ashamed to say that I have relied heavily on several Ubuntu threads on GRUB 2. Let's face it, it's out in front on GRUB 2 at the moment. To me, you don't need to do anything to /etc/grub/default. Instead, it's /etc/grub.d/40_custom. There should be one already there with those first two lines. They're important so leave those there and add your custom lines below them. One thing you can do in your situation is to mount the Fedora boot partition and open /boot/grub/grub.conf to copy the title, root, kernel, and initrd lines for the newest kernel. Paste them into 40_custom and modify them for GRUB 2 syntax. Just for example only...
From my Fedora 13 grub.conf...
Code:
title Fedora (2.6.33.4-95.fc13.i686.PAE)
root (hd0,2)
kernel /boot/vmlinuz-2.6.33.4-95.fc13.i686.PAE ro root=UUID=2945f858-e671-4d83-8945-277b78943a7d rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us rhgb quiet
initrd /boot/initramfs-2.6.33.4-95.fc13.i686.PAE.img
What I would do to convert them to GRUB 2 syntax in /etc/grub.d/40_custom...
Code:
menuentry "Fedora (2.6.33.4-95.fc13.i686.PAE)" {
set root=(hd0,3)
linux /boot/vmlinuz-2.6.33.4-95.fc13.i686.PAE ro root=UUID=2945f858-e671-4d83-8945-277b78943a7d rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us rhgb quiet
initrd /boot/initramfs-2.6.33.4-95.fc13.i686.PAE.img
}
Note particularly the change in the partition number and the change of "kernel" to "linux".
Save the file and run sudo update-grub in a terminal. Reboot and see what happens. If it works, good. But you'll have to redo it when the Fedora kernel gets updated. If you are willing to re-install Fedora's GRUB in the first sector of the Fedora boot partition, then you can use simply the chainloader command (like I do). It's "immune" to breakage by a Fedora kernel update. Example of that from my Ubuntu 40_custom...
Code:
menuentry "Fedora 13" {
set root=(hd0,3)
chainloader +1
}
P.S.: One thing to remember about these GRUB 2 scripts in /etc/grub.d is that they must be executable. That sample 40_custom should already be so. But if you ever create one from scratch, remember to make it executable like this...
Code:
sudo chmod +x /etc/grub.d/40_custom