Столкнулся намедни с необходимостью настройки GRUB 2 при установке Funtoo Linux. Скрипты генерации grub.cfg меня не устроили, сам GRUB 2 в Funtoo урезан (утилиты grub-mkconfig в комплекте нет), остается ручная правка /boot/grub/grub.cfg. Внятной документации не нашел (по /etc/default/grub и /etc/grub.d/* что-то есть, на французском, хе-хе). На просторах Интернета наиболее часто разбираемый конфиг - это конфиг Ubuntu. В частности уперся в пресловутый recordfail.
Так вот, насколько я понял, recordfail - это не какая-то собственная возможность GRUB 2 и потому в руководствах и исходниках самого GRUB упоминаний о recordfail не найти. Дело в том, что GRUB 2 имеет скриптинговые возможности a-la shell, в том числе установку переменных (eg. set [VARIABLE[=VALUE]]). Более того, он способен сохранять значения переменных между своими сессиями (функции GBUB2 save_env и load_env, а также утилита grub_editenv). А хранит он их как раз в файле /boot/grub/grubenv. Эта возможность им самим также используется для релизации GRUB_DEFAULT=saved.
Итак, переменная recordfail - это пример того, как в Ubuntu (а точнее, в Debian) используется скриптовые возможности GRUB 2. Если заглянуть в /boot/grub/grub.cfg, можно найти реализацию функции recordfail, где переменная recordfail устанавливается в 1 и сохраняется. А в menuentry производится вызов этой функции (кстати, только в тех menuentry, где грузится Ubuntu). В /boot/grub/grub.cfg имеется и реакция на значение recordfail: если 0 (или не установлена) - включить обычный таймер обратного отсчета, если 1 - таймер выключить.
Если кто еще не догадался, recordfail=1 - это признак сбоя загрузки. Именно поэтому в menuentry изначально полагается recordfail=1, а по завершении загрузки сама Ubuntu должна эту переменную очистить. Так что где-то в скриптах инициализации должен быть зарыт вызов типа grub-editenv /boot/grub/grubenv unset recordfail
Что, в частности, и выполняется в /etc/pm/sleep.d/10_grub-common.
Если же переменная не очищается, то GRUB при следующем запуске отключает таймер и тем самым отменяет автозагрузку ОС и дает возможность спокойно и не торопясь отредактировать menuentry вручную, перейти в интерактивный режим или просто выбрать другой пункт загрузки.