Ubuntu's root is (hd0,5) /dev/hda6. MEPIS's is (hd0,6) /dev/hda7 WinME is (hd0,0), of course.This is why one of the reasons I use a /boot pratition. Allows you to use a single one for any number of Distros.
title Mepis\nroot (hd0,6)\nkernel /boot/exactmepiskernelname root=/dev/hda7 ro vga=791\ninitrd /initrd.imgforthemepiskernel\nsavedefault\nboot\n\ntitle Mepis (recovery mode)\nroot (hd0,6)\nkernel /boot/exactmepiskernelname root=/dev/hda7 ro vga=791 single\ninitrd /boot/initrd.imgforthemepiskernel\nsavedefault\nboot\n\ntitle Ubuntu\nroot (hd0,5)\nkernel /boot/exactubuntukernelname root=/dev/hda6 ro vga=791\ninitrd /boot/initrd.imgfortheubuntukernel\nsavedefault\nboot\n\ntitle Ubuntu (recovery mode)\nroot (hd0,5)\nkernel /boot/exactubuntukernelname root=/dev/hda6 ro vga=791 single\ninitrd /boot/initrd.imgfortheubuntukernel\nsavedefault\nboot\n\ntitle Windows hd0,0\nrootnoverify (hd0,0)\nmakeactive\nchainloader +1\n\n# These 2 entries change hd0 into hd1 and\n# hd1 into hd0 to trick Windows\n#title WinXP hd0-hd1+hd1\n# map (hd0) (hd1)\n# map (hd1) (hd0)\n# rootnoverify (hd1,0)\n# makeactive\n# chainloader +1\n#\n#title WinXP 0x80-0x81+hd1\n# map (0x81) (0x80)\n# map (0x80) (0x81)\n# rootnoverify (hd1,0)\n# makeactive\n# chainloader +1The thing is, if the initrd image doesn't exist just leave off the whole line for that entry.
If it were me,
(hd0,0) /dev/hda1 == Windows
(hd0,1) /dev/hda2 == 200-300MB /boot partition for any Linux distro (flagged bootable)
(hd0,2) /dev/hda3 == swap for linux
(hd0,4) /dev/hda5 == Mepis Root
(hd0,5) /dev/hda6 == Ubuntu Root
(hd0,6) /dev/hda7 == /home for both linux distribs
That would make it so you could specify all distros to use /dev/hda2 as the /boot filesystem. That way you can put all kernels for the distros there. Using one grub menu.lst Simplifies every.
Edit: After an admonishment, I *HAVE* corrected Mephis to Mepis.