I have Ubuntu 10.10 installed on one (physical) hd and on the other one Windows. On both drives grub is installed to boot both operating systems. When I wanted to install SP1 for Win 7 I had to add a bootable flag to the partition from which Windows boots, otherwise the installation of SP1 does not work. I did so by booting into Ubuntu and using gparted to add this flag. After doing so the update for SP1 worked without any problems.
When trying to boot back into Ubuntu grub complained that it couldn't find the kernel anymore! I tried to boot into a Ubuntu minimal cd and to restore grub using chroot, update-grub and grub-install which didn't work. I still had the problem that it was Unable to boot Ubuntu putting me in some minimal system called initramfs. It seems however that the uuid of the partitions changed. I guess this happened when I added the bootflag to the windows disk.
Next thing I tried was to tell grub not to use the uuid for loading the kernel by uncommenting something in /etc/default/grub. Then I got the kernel booting but it suddenly stops (I guess when it is trying to mount the root file system) saying that the concerning uuid does not exist putting me into initramfs again. The strange thing is that there I coulnd't even manage to mount the root partition using /dev/sdb1 (on which it is in my case).
I would be glad if there is a way to restore the system again without having to reinstall it.
Update
In case anyone cares I solved this. For some reason I also reseted the BIOS and it set the SATA protocol back to IDE. It seems that there is no driver for this in initrd. So I just set it back now it works again.
Ah, UUIDs for partitions. In my experience, that approach only works as long as you don't tamper with your partitions. What I have resolved to is removing every reference to the UUIDs in /etc/fstab and in Grub and then things tend to work.
Sometimes drives are named differently when you are in a minimal system, therefore you cannot mount /dev/sdb1. Try looking which partitions were found by doing
Alternatively you can watch the kernel boot very careful, or use
to show you the kernel ring buffer again...