Merge lp:~darkmuggle-deactivatedaccount/ubuntu/quantal/grub2/param-recordfail-timeout into lp:ubuntu/quantal/grub2

Proposed by Ben Howard
Status: Merged
Merge reported by: Colin Watson
Merged at revision: not available
Proposed branch: lp:~darkmuggle-deactivatedaccount/ubuntu/quantal/grub2/param-recordfail-timeout
Merge into: lp:ubuntu/quantal/grub2
Diff against target: 76 lines (+54/-0)
3 files modified
debian/changelog (+9/-0)
debian/patches/series (+1/-0)
debian/patches/ubuntu_param_recordfail_timeout.patch (+44/-0)
To merge this branch: bzr merge lp:~darkmuggle-deactivatedaccount/ubuntu/quantal/grub2/param-recordfail-timeout
Reviewer Review Type Date Requested Status
Colin Watson Approve
Review via email: mp+107243@code.launchpad.net

This proposal supersedes a proposal from 2012-05-21.

Description of the change

This patch parameterizes the record fail behavior, such that putting "GRUB_RECORDFAIL_TIMEOUT=0" in /etc/default/grub will fix hang problems on appliances and HVM cloud images. (See LP: #462888, #872244, #447725 and #669481 and there are many user reports on Google). The current work-around is to modify /etc/grub.d/00_header directly. However, this work around fails on any Grub2 package update.

This fix simply adds the environment variable "GRUB_RECORDFAIL_TIMEOUT" which can then be defined in /etc/default/grub. When this variable is present, it sets the timeout on "recordfail" to the value, otherwise it sets it the default value of "-1".

This has been tested on both Precise and Quantal builds.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) wrote : Posted in a previous version of this proposal

Please drop the debian/default/grub change. It'll probably cause configuration file prompts for people, and it's unnecessary - most variables are not documented by way of comments in the stock /etc/default/grub file.

Conversely, please add a patch to docs/grub.texi to document this new variable.

review: Needs Fixing
Revision history for this message
Colin Watson (cjwatson) wrote : Posted in a previous version of this proposal

Oh, also, a more verbose changelog entry (along the lines of your commit message) wouldn't hurt.

Revision history for this message
Ben Howard (darkmuggle-deactivatedaccount) wrote :

Resubmission with requested changes.

Revision history for this message
Ben Howard (darkmuggle-deactivatedaccount) wrote :

Launchpad is not updating the revison number. The current revision is 145.

Revision history for this message
Ben Howard (darkmuggle-deactivatedaccount) wrote :

bump

Revision history for this message
Colin Watson (cjwatson) wrote :

The GRUB_RECORDFAIL_TIMEOUT block is one line off where it should be in grub.texi; I'll fix that up. I think I'll also consolidate this into ubuntu_failed_boot_menu.patch; there's little point in carrying two patches in the series when the whole recordfail business is an Ubuntu patch to begin with.

Otherwise this looks good, thanks!

review: Approve
Revision history for this message
Colin Watson (cjwatson) wrote :

Argh. This branch is incorrectly based on lp:ubuntu/grub2 rather than on lp:~ubuntu-core-dev/ubuntu/quantal/grub2/quantal (sorry for these being different), so I cannot merge it directly due to them sharing no history. I'll just have to apply the patch directly.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2012-05-15 08:03:30 +0000
3+++ debian/changelog 2012-05-24 20:17:25 +0000
4@@ -1,3 +1,12 @@
5+grub2 (1.99-21ubuntu5) UNRELEASED; urgency=low
6+
7+ * Parameterization of recordfail setting. This allows users to define the
8+ default time out of GRUB when recordfail has been set. The current
9+ setting causes hangs on headless and appliances where access to the
10+ console is limited or prohibited. (LP: #669481)
11+
12+ -- Ben Howard <ben.howard@ubuntu.com> Thu, 24 May 2012 10:27:43 -0600
13+
14 grub2 (1.99-21ubuntu4) quantal; urgency=low
15
16 * Switch to backwards compatible ${} syntax for grub.cfg (LP: #978464)
17
18=== modified file 'debian/patches/series'
19--- debian/patches/series 2012-04-17 16:11:45 +0000
20+++ debian/patches/series 2012-05-24 20:17:25 +0000
21@@ -64,3 +64,4 @@
22 ubuntu_qemu_no_kvm.patch
23 ubuntu_probe_nonexistent_loopback.patch
24 ubuntu_efi_device_discovery.patch
25+ubuntu_param_recordfail_timeout.patch
26
27=== added file 'debian/patches/ubuntu_param_recordfail_timeout.patch'
28--- debian/patches/ubuntu_param_recordfail_timeout.patch 1970-01-01 00:00:00 +0000
29+++ debian/patches/ubuntu_param_recordfail_timeout.patch 2012-05-24 20:17:25 +0000
30@@ -0,0 +1,44 @@
31+Description: Parameterizes the timeout value for recordfail boots
32+Author: Ben Howard <ben.howard@ubuntu.com>
33+Bug-Ubuntu: https://bugs.launchpad.net/bugs/669481
34+Forwarded: no
35+Last-Update: 2012-05-17
36+
37+--- a/util/grub.d/00_header.in
38++++ b/util/grub.d/00_header.in
39+@@ -233,7 +233,7 @@ make_timeout ()
40+ {
41+ cat << EOF
42+ if [ "\${recordfail}" = 1 ]; then
43+- set timeout=-1
44++ set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
45+ else
46+ set timeout=${2}
47+ fi
48+--- a/util/grub-mkconfig.in
49++++ b/util/grub-mkconfig.in
50+@@ -245,7 +245,8 @@ export GRUB_DEFAULT \
51+ GRUB_DISABLE_OS_PROBER \
52+ GRUB_INIT_TUNE \
53+ GRUB_SAVEDEFAULT \
54+- GRUB_BADRAM
55++ GRUB_BADRAM \
56++ GRUB_RECORDFAIL_TIMEOUT
57+
58+ if test "x${grub_cfg}" != "x"; then
59+ rm -f ${grub_cfg}.new
60+--- a/docs/grub.texi
61++++ b/docs/grub.texi
62+@@ -1249,6 +1249,12 @@ out specified regions of RAM.
63+ @item GRUB_PRELOAD_MODULES
64+ This option may be set to a list of GRUB module names separated by spaces.
65+ Each module will be loaded as early as possible, at the start of
66++
67++@item GRUB_RECORDFAIL_TIMEOUT
68++If this option is set, it overrides the default recordfail setting. The
69++default setting is -1, which causes GRUB to wait for user input. This option
70++should be set on headless and appliance systems where access to a console is
71++restricted or limited.
72+ @file{grub.cfg}.
73+
74+ @end table
75
76=== removed file 'grub-core/lib/posix_wrap/limits.h'

Subscribers

People subscribed via source and target branches

to all changes: