I’ve been using uswsusp for suspending/hibernating my Ubuntu Feisty laptop but suddenly it failed to resume from disk hibernation (blank screen with blinking cursor). I booted up in restoration mode and Ubuntu reported that it couldn’t restore the snapshot. After pressing enter to continue, the system booted up just fine, skipping the snapshot restoration as supposed. The startup problem vanished, but it brought up a new one when trying to hibernate:
>>> sudo s2disk Could not use the resume device (try swapon -a)
Of course, swapon also gives a problem:
>>> sudo swapon -a swapon: cannot stat /dev/disk/by-uuid/4a815ae8-fa5b-4265-826c-d777a723e87b: No such file or directory
It seems that the UUID reference for swap is broken. Or is it the swap? At this point I did some Google research and it turned out the behaviour was because of an Ubuntu Feisty bug, which causes the swap UUID change occasionally. It is closely related to hibernation, yet the cause remains unclear. To fix it, let’s do:
>>> free -m | grep -i swap Swap: 0 0 0
Which indicates that the system doesn’t find swap at all (because of wrong UUID). To find correct one:
>>> sudo fdisk -l | grep swap /dev/sda6 10669 10917 2000061 82 Linux swap / Solaris
Find your swap there and go for:
>>> sudo vol_id /dev/sda6 ID_FS_UUID=083d41f0-de57-48d4-92eb-aefde8fd6ec9
Then you’ll just have to edit it in /etc/fstab and hibernation should work again. You could also try restoring the original snapshot by editing:
>>> sudo nano /etc/initramfs-tools/conf.d/resume
and correcting the reference there also. I didn’t test this myself, however.
That should do it, but don’t get too excited: some report that the UUID keeps changing even after the fix, and it has to be manually changed over and over again. Luckily, I haven’t experienced such behaviour (yet!) and it’s quick to fix (though you might lose ability to hibernate, which is a really bad thing).