Essa abordagem é um pouco mais limpa - basta modificar /etc/default/grub
para adicionar a linha:
GRUB_RECORDFAIL_TIMEOUT=2
... qual deles pode ser feito automaticamente com algo assim no provisionamento:
if grep '^GRUB_RECORDFAIL_TIMEOUT=' /etc/default/grub ; then
echo GOOD: /etc/default/grub
else
echo FIXING: /etc/default/grub
perl -pi.bak -e \
's/^(GRUB_TIMEOUT=.*\n)/${1}GRUB_RECORDFAIL_TIMEOUT=2\n/' \
/etc/default/grub
update-grub
fi
Isso deve ser viável se a variável GRUB_RECORDFAIL_TIMEOUT for mencionada em
/etc/grub.d/00_header
(como estou vendo em 12.04 LTS) em:
make_timeout ()
{
cat << EOF
if [ "\${recordfail}" = 1 ]; then
set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
else
set timeout=${2}
fi
EOF
}
Estou um pouco curioso sobre se investigar como as falhas são registradas pode render uma resposta ainda melhor.