Finally found a work-around to this problem. Apparently the problem is that pm-hibernate does not always unset the grub environment variable "recordfail" correctly (or the modification doesn't make it into the grub environment block - see /etc/pm/sleep.d/10_grub-common). Hence, upon checking this variable at boot time grub disregards the timeout and displays the normal boot menu.
A possible work-around for this problem is now to modify the header section of the grub stanza (file /etc/grub.d/00_header) so that around line 234 (in my Oneiric instance)
Code:
make_timeout ()
{
cat << EOF
if [ "\${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=${2}
fi
EOF
}
becomes
Code:
make_timeout ()
{
cat << EOF
# if [ "\${recordfail}" = 1 ]; then
# set timeout=-1
# else
set timeout=${2}
# fi
EOF
}
I'm filing this also as a launchpad bug.
Bookmarks