I use a virtualized Arch install at work and yesterday I had to upgrade it. Unfortunately, during the large update process, the VM ran out of memory and crashed pretty badly. I was able to reboot and finished the upgrade, but after that, rebooting just causes
ERROR: device 'UUID=36ec68ed-259d-4d1d-aa9b-d9f4229bf0b2' not found. Skipping fsck. ERROR: Unable to find root device 'UUID=36ec68ed-259d-4d1d-aa9b-d9f4229bf0b2'. You are being dropped to recovery shell Type 'exit' to try and continue booting sh: can't access tty: job control turned off [rootfs/]#
Now, I've seen that this is a quite common issue, being caused by a broken initramfs/initrd. Usually you fix it by either booting the fallback and generating a new boot image, or boot with an Arch live cd, chroot and do the same thing from there. Basically, what's described here. However, that doesn't work for me. The fallback won't boot (same error) and regenerating a new initramfs from a live cd doesn't change the situation. I've reinstalled almost all the packages I updated yesterday (by way of arch-chroot from the live cd) to no avail.
My basic partition layout is:
sda1 / ext4 sda2 /home ext4 sda3 swap swap
I find it curious that when I get dropped in the recovery shell, no modules are loaded according to lsmod. Also, no sd* devices are listed in /dev. I've tried manually adding both ahci and ext4 to the modules array in mkinitcpio.conf, but while it causes the modules to get loaded, it doesn't solve anything. There are still no sd* devices in /dev. I've also tried downgrading to the older kernel I used up until yesterday (3.6.4 I think), but that didn't work either. Clearly something has broke, but I can't figure out what.
Any help appreciated.