FIX: Ubuntu usplash stops “Waiting for resume device”

I am currently messing with Ubuntu 9.04 on my laptop, and as usual I’ve set up an encrypted root filesystem and an encrypted swap; this time I preferred to use the distributions built-in means for disk encryption (basically dm-crypt and LUKS). It worked like a charm, you just have to use the Alternate CD in order to have the disk encryption options available.

There was only a minor glitch: the usplash graphical boot stopped right after the message “Waiting for resume device” leaving me with the plain old text boot; the solution is written in this bug report. The proposed patch from Florent Mertens will not work for Ubuntu 9.04 but it contains everything you need to fix the problem: you just have to edit the file /usr/share/initramfs-tools/scripts/local-premount replacing the line

/sbin/usplash_write "TIMEOUT ${slumber}" || true

with

/sbin/usplash_write "TIMEOUT $(( ${slumber} + 2 ))" || true

Basically usplash stops itself if there isn’t anything written on the standard output after a certain time; since the “Waiting for resume device” operation takes too much time this modification adjusts the timeout accordingly.

Always on the bug report there is a possible explaination for this behaviour: on the last post Alexander Sashanov says that one of the way to reproduce this bug is to change the swap partition’s UUID. Since my swap device is encrypted with a random key and so mkswap is executed at every boot, the swap UUID changes indeed at every boot, causing the timeout.

Leave a Reply