I'm working on upgrading some virtual machines that were on 11.10 and need to be upgraded to 12.04. (Because of an extremely large mysql database, a fresh install isn't really a good option.) I do at least have a QA server to test on, and I ran a test upgrade over the weekend on that server. It appeared to work perfectly until the reboot, despite running the risk of doing the upgrade via ssh (I know it's not "recommended" but I didn't have "proper" visual access at that time because of where the machine is actually hosted).
During the upgrade, I allowed the system to replace /boot/grub/menu.lst with the new package file. So I'm pretty sure it's not looking for the old kernel and not finding it. I also allowed it to replace the my.cnf and /etc/apache2/mods-available/alias.conf and planned to manually merge the php.ini and apache2.conf. Still, nothing that showed up during the upgrade appeared to give any clue about what was coming next.
Upon reboot, however it apparently isn't finding the hard drive anymore. It drops into the "BusyBux" built-in shell for what I assume is emergency recovery work after three "segmentation fault" errors and reporting that it "gave up waiting for root device". And it says that "/dev/disk/by-uuid/xxxxxx does not exist." Running df gives me nothing but the "udev" and "tmpfs" filesystems, mounted at /dev and /run respectively. I can't run fdisk or fsck or anything else similar.
I do have a backup of the virtual machine from before the upgrade was attempted, so I figure I'll just have to rollback and try again. But I'd sure appreciate it if anybody can tell me just what is going on here so I can fix it (and/or prevent it) if it ever happen again.