So yesterday I decided to upgrade my installation of Ubuntu from 9.04 -> 9.10 on my file server at home. This system has no screen attached to it and no keyboard so I just ssh’d in and followed the how-to on the Ubuntu website for doing the distribution upgrade.
Everything went smooth until I rebooted the system, and after a while when I tried to get back into it I noticed it hadnt come back online. I plugged a monitor a keyboard into the system and rebooted it to see what the issue was and I saw this screen.
mountall: /proc: unable to mount: Device or resource busy
mountall: /proc/self/mountinfo: Not such file or directory
mountall: root filesystem isn’t mounted
init: mountall main process (2025) terminated with status 1
General error mounting filesystems.
A maintenance shell will now be started.
So I hit the internet and tried to figure out wehat was going on, and found out this appears to be a problem for a lot of people, but none of the solutions I found worked for me, mostly because my fileserver has no cd drive and booting from a flash drive doesnt seem to work either.
From what I can gather the main reason this issue is happening is becase Grub is broken during the update process and is pointing at the wrong drive/kernel. Most solutions involved booting into a live cd and fixing menu.lst from there or using grub-update. Eventually I managed to fix the problem by going into grub and manually editing the boot command to point at the correct drive and the correct kernel. The easiest way to do this for your system is to use tab completion as it will tell you all the options and using a little trial and error you can get it going.
Hopefully this saves someone else from hours of torture.