I'll add my experience with Karmic and Grub 2. Much of this has been stated previously in this thread, but perhaps one more voice will help someone else.
On my old laptop, I dual-boot Ubuntu and Puppy. (Why? Even though I prefer Puppy, it's problematic on this old hardware, and also because establishing and maintaining a wireless connection with Puppy is VERY problematic.) I recently installed Ubuntu Karmic 9.10 from scratch, which included Grub 2. It was supposed to pull in the settings from Grub 1 - - which it did, except for my Puppy frugal installation. So, I had to do a fair amount of research, along with lots of trial and error to get Grub 2 to properly list and start my frugal Puppy. Info from this thread and other places helped me get my puppy back.
Here's the skinny on updating & modifying Grub 2 via Karmic:
1. It does not use the configuration file 'menu.lst' from Grub 1. Instead, it stores the menu items and configuration info in grub.cfg, in the '/boot/grub' folder.
2. The grub.cfg file is not meant to be manually modified. You update it via the terminal by executing the following command - 'sudo update-grub'. You can, of course, update grub.cfg manually, but your manual entries will be erased at the next Ubuntu update.
3. To update grub.cfg, you add your script(s) to the file '/etc/grub.d/40_custom'. After saving the file, you then execute 'sudo update-grub', which modifies grub.cfg by looking for additional major operating systems on your computer, and by adding the information you entered into the file '40_custom'.
After installing Karmic, it was clear that to get my puppy install back I had to add the menu entry info from my old menu.lst file (which the Grub 2 install left intact) into the file '40_custom'. Unfortunately, the syntax has changed in Grub 2, along with how and where you make changes to the menu selections. Also, partition numbering now starts at 1 instead of 0. Here's a comparison of my the menu data for grub 1 and grub 2.
Grub 1
title Puppy Linux 4.30 (retro)- Frugal Install
rootnoverify (hd0,4)
kernel /puppy430/vmlinuz pmedia=idehd psubdir=puppy430 nosmp pfix=fsck
initrd /puppy430/initrd.gz
Grub 2
menuentry "Puppy Linux 4.30 (retro)- Frugal Install" {
set root=(hd0,5)
linux /puppy430/vmlinuz pmedia=idehd psubdir=puppy430 nosmp pfix=fsck
initrd /puppy430/initrd.gz
}
Note the changes:
1. 'title' has become 'menuentry'
2. title text needs to be in quotation marks
3. 'rootnoverify' has become 'set root='
4. partition numbering now starts at 1 instead of 0
5. 'kernel' has become 'linux'
6. You now need to have brackets setting off all of the menu entry settings except the menuentry heading.
SO, the Grub 2 developers changed pretty much everything about grub, much of it seemingly for no reason other than to be different. This is what happens when you let software developers loose with no supervision. Because they understand the code so well, I've seen time and time again that software developers make programs overly and unnecessarily complex for the other people who will use it.
The code may be extremely functional - even brilliant. But folks, we're talking about a bootloader here and as it stands now it's a POS. How in the world can you expect the average person to understand how to modify their boot menu? And what appears in this thread only scratches the surface - there are many pages of Grub 2 'user information' on the web. Someone new to bootloaders will likely quickly give up and return to the warm folds of Microsoft.
If you have patience and a strong cup of coffee at the ready, here's Ubuntu's community documentation for Grub 2.
https://help.ubuntu.com/community/Grub2
One final note: Grub 2 takes twice as much time to load, compared to Grub 1. After turning my laptop on, there are several seconds of non-activity before Grub 2 decides to load. The first couple of times I booted I thought it had hung. That's progress fer ya.
Likely, I'll revert to Grub 1 in the next few days. And I really, really hope that Puppy doesn't come armed with Grub 2 until it's ready for prime time, and the masses.