Timeout should not be -1 if $recordfail
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
grub2 (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Oneiric |
Fix Released
|
Medium
|
Unassigned | ||
Precise |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: grub2
SRU justification
[Impact]
If a system fails to boot to the point where it runs /etc/init.
[Test case]
A thorough test case is mentioned in comment #8 and has been used to confirm that the Quantal fix was applicable.
One shortcut to testing the fix is to disable execution of /etc/init.
$ sudo chmod -x /etc/init.
Without the fix, a reboot will result in the instance waiting at the GRUB prompt. With the proposed fix, it will boot normally.
[Regression Potential]
There is little potential as without intentional modification of /etc/default/grub, the variable defaults to its previous value of -1.
My experience is that $recordfail is not always written successfully, which is by default tested in grub.cfg (through grub.d/00_header)
This causes grub2 to set timeout=-1 which removes the timeout for bootup in these cases.
On computers which have not been configured for "USB Legacy" in the BIOS but use USB keyboards, this looks as if grub has frozen - because the keyboard does not respond. The consequence is that the computer won't boot without either knowledge on how to configure BIOS (and what) or using a PS/2 keyboard (not always available or possible to plugin).
My suggestion is that Ubuntu recognizes $recordfail but instead of disabling timeout (-1) it should be set to a relatively high value (such as 10 seconds). This will be enough to alert the user on what option is booting, and that the computer hasn't frozen, as well as enabling false/known failures to be ignored.
Maybe a future addition to recognising $recordfail is to have a warning on the boot menu, but that is outside the scope of this report.
ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: grub-pc 1.98+20100804-
ProcVersionSign
Uname: Linux 2.6.35-
Architecture: i386
Date: Mon Nov 1 15:33:30 2010
InstallationMedia: Ubuntu-Server 10.10 "Maverick Meerkat" - Release i386 (20101007)
ProcEnviron:
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: grub2
Related bugs:
* bug 1035279: instance hangs at grub prompt after reboot followed by euca-reboot-
* bug 872244: grub2 recordfail logic prevents headless system from rebooting after power outage
Related branches
- Colin Watson: Approve
-
Diff: 76 lines (+54/-0)3 files modifieddebian/changelog (+9/-0)
debian/patches/series (+1/-0)
debian/patches/ubuntu_param_recordfail_timeout.patch (+44/-0)
- Scott Moser: Approve
-
Diff: 65 lines (+42/-1)2 files modifieddebian/changelog (+10/-0)
debian/patches/ubuntu_failed_boot_menu.patch (+32/-1)
- Scott Moser: Approve
- Ubuntu branches: Pending requested
-
Diff: 65 lines (+42/-1)2 files modifieddebian/changelog (+10/-0)
debian/patches/ubuntu_failed_boot_menu.patch (+32/-1)
Changed in grub2 (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
no longer affects: | ubuntu-meta (Ubuntu) |
tags: | added: cloud-images cloud-images-build |
Changed in grub2 (Ubuntu Precise): | |
status: | New → Triaged |
importance: | Undecided → Medium |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
Changed in grub2 (Ubuntu Oneiric): | |
importance: | Undecided → Medium |
status: | New → Confirmed |
This is a major problem. Some times if there is a power failure, or some kind of other problem like a kernel oops, you send a reboot request to the server and it never boots because of this timeout -1 :/
I had to drive 40 miles to plug a keyboard in and press enter because of this. Please, please, please change this to a reasonable timeout or make this easily changeable without having to modify grub.d code :/