Well, since it really is a two part question, I can answer the implicit first one about how to get grub2 to at least boot ubuntu.
It goes like this:
Boot from LiveCD (x86 11.10 Desktop)
Mount the root of the Ubuntu 10.10 at /mnt
Change root
Remove workaround changes to /usr/lib/grub/grub-mkconfig_lib
Run update-grub
Reboot
The above steps are from near the bottom of the Ubuntu Community Documentation of Grub2
⋯the particulars are by example
after booting from CD and running in terminal…
sudo -i
⋯ I've spent too many years as su, but you shold use "sudo …
" in front of each command
ubuntu@ubuntu:~$ sudo -i
fdisk -l
⋯ that's a lower case L ⋯ Find the 11.10 installation partitions, (other disks snipped here)
fdisk -l
⋯ ⋯ ⋯
Disk /dev/sde: 300.1 GB, 300089646592 bytes
255 heads, 63 sectors/track, 36483 cylinders, total 586112591 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3f5ebeb
Device Boot Start End Blocks Id System
/dev/sde2 138464296 586110975 223823340 5 Extended
/dev/sde3 * 2048 138463231 69230592 83 Linux
/dev/sde5 138464298 313460279 87497991 7 HPFS/NTFS/exFAT
/dev/sde6 313460736 317650943 2095104 82 Linux swap / Solaris
/dev/sde7 317652992 581922815 132134912 83 Linux
/dev/sde8 581924864 586110975 2093056 82 Linux swap / Solaris
Partition table entries are not in disk order
mount /dev/sde3 /mnt
⋯ my root partition, sde7 is my home partition
ls /mnt
⋯ just checking to see if I got it right
root@ubuntu:~# mount /dev/sde3 /mnt
root@ubuntu:~# ls /mnt
bin cdrom etc initrd.img lib media opt root sbin srv tmp var vmlinuz.old
boot dev home initrd.img.old lost+found mnt proc run selinux sys usr vmlinuz
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
⋯ do as one line
chroot /mnt
⋯ change the root
sudoedit /usr/lib/grub/grub-mkconfig_lib
⋯ here I undo the changes
update-grub
⋯ now update grub
root@ubuntu:~# for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
root@ubuntu:~# chroot /mnt
root@ubuntu:/# sudoedit /usr/lib/grub/grub-mkconfig_lib
root@ubuntu:/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sdc1
done
sudoedit /etc/default/grub
⋯ check to see if changed (should be same as the original)
sudoedit /boot/grub/grub.cfg
⋯ check to see if mounting by UUID as originally
And it was.
Now to file a bug report for the boot failure…