Commit Graph

104 Commits

Author SHA1 Message Date
Mike Gilbert
19e4a51ac1 10_linux: Fix grouping of tests for GRUB_DEVICE
Commit 7290bb562 causes GRUB_DISABLE_LINUX_UUID to be ignored due to
mixing of || and && operators. Add some parens to help with that.

Origin: upstream, http://git.savannah.gnu.org/cgit/grub.git/commit/?id=082bc9f77b200eb48a5f1147163dea9c9d02d44c
Bug-Debian: https://bugs.debian.org/841680
Bug-Debian: https://bugs.debian.org/841741
Last-Update: 2016-10-31

Patch-Name: uuid-test-precedence-1.patch
2016-10-31 10:10:51 +00:00
Colin Watson
4a4289d31b Generate alternative init entries in advanced menu
Add fallback boot entries for alternative installed init systems.  Based
on patches from Michael Biebl and Didier Roche.

Bug-Debian: https://bugs.debian.org/757298
Bug-Debian: https://bugs.debian.org/773173
Forwarded: no
Last-Update: 2015-01-03

Patch-Name: mkconfig_other_inits.patch
2016-09-19 13:35:20 +01:00
Ian Campbell
97f48a087c Arrange to insmod xzio and lzopio when booting a kernel as a Xen guest
This is needed in case the Linux kernel is compiled with CONFIG_KERNEL_XZ or
CONFIG_KERNEL_LZO rather than CONFIG_KERNEL_GZ (gzio is already loaded by
grub.cfg today).

Signed-off-by: Ian Campbell <ijc@debian.org>

Bug-Debian: https://bugs.debian.org/755256
Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-11/msg00091.html
Last-Update: 2014-11-30

Patch-Name: insmod-xzio-and-lzopio-on-xen.patch
2016-09-19 13:35:19 +01:00
Colin Watson
8472000fa8 Add GRUB_RECOVERY_TITLE option
This allows the controversial "recovery mode" text to be customised.

Bug-Ubuntu: https://bugs.launchpad.net/bugs/1240360
Forwarded: no
Last-Update: 2013-12-25

Patch-Name: mkconfig_recovery_title.patch
2016-09-19 13:35:19 +01:00
Colin Watson
033b90da34 Add configure option to use vt.handoff=7
This is used for non-recovery Linux entries only; it enables
flicker-free booting if gfxpayload=keep is in use and a suitable kernel
is present.

Author: Andy Whitcroft <apw@canonical.com>
Forwarded: not-needed
Last-Update: 2013-12-25

Patch-Name: vt_handoff.patch
2016-09-19 13:35:19 +01:00
Evan Broder
b3d692196f Add configure option to enable gfxpayload=keep dynamically
Set GRUB_GFXPAYLOAD_LINUX=keep unless it's known to be unsupported on
the current hardware.  See
https://blueprints.launchpad.net/ubuntu/+spec/packageselection-foundations-n-grub2-boot-framebuffer.

Author: Colin Watson <cjwatson@ubuntu.com>
Forwarded: no
Last-Update: 2013-12-25

Patch-Name: gfxpayload_dynamic.patch
2016-09-19 13:35:19 +01:00
Colin Watson
382eda4503 Add configure option to bypass boot menu if possible
If other operating systems are installed, then automatically unhide the
menu.  Otherwise, if GRUB_HIDDEN_TIMEOUT is 0, then use keystatus if
available to check whether Shift is pressed.  If it is, show the menu,
otherwise boot immediately.  If keystatus is not available, then fall
back to a short delay interruptible with Escape.

This may or may not remain Ubuntu-specific, although it's not obviously
wanted upstream.  It implements a requirement of
https://wiki.ubuntu.com/DesktopExperienceTeam/KarmicBootExperienceDesignSpec#Bootloader.

If the previous boot failed (defined as failing to get to the end of one
of the normal runlevels), then show the boot menu regardless.

Author: Richard Laager <rlaager@wiktel.com>
Author: Robie Basak <robie.basak@ubuntu.com>
Forwarded: no
Last-Update: 2015-09-04

Patch-Name: quick_boot.patch
2016-09-19 13:35:18 +01:00
Colin Watson
46daedd106 Add configure option to reduce visual clutter at boot time
If this option is enabled, then do all of the following:

Don't display introductory message about line editing unless we're
actually offering a shell prompt.  (This is believed to be a workaround
for a different bug.  We'll go with this for now, but will drop this in
favour of a better fix upstream if somebody figures out what that is.)

Don't clear the screen just before booting if we never drew the menu in
the first place.

Remove verbose messages printed before reading configuration.  In some
ways this is awkward because it makes debugging harder, but it's a
requirement for a smooth-looking boot process; we may be able to do
better in future.  Upstream doesn't want this, though.

Disable the cursor as well, for similar reasons of tidiness.

Suppress kernel/initrd progress messages, except in recovery mode.

Suppress "GRUB loading" message unless Shift is held down.  Upstream
doesn't want this, as it makes debugging harder.  Ubuntu wants it to
provide a cleaner boot experience.

Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922
Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048
Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html
Last-Update: 2014-01-03

Patch-Name: maybe_quiet.patch
2016-09-19 13:35:18 +01:00
Colin Watson
547e20d1bb Generate configuration for signed UEFI kernels if available
Forwarded: no
Last-Update: 2013-12-25

Patch-Name: mkconfig_signed_kernel.patch
2016-09-19 13:35:18 +01:00
Mario Limonciello
0bfb305e24 Remove GNU/Linux from default distributor string for Ubuntu
Ubuntu is called "Ubuntu", not "Ubuntu GNU/Linux".

Author: Colin Watson <cjwatson@debian.org>
Author: Harald Sitter <apachelogger@kubuntu.org>
Forwarded: not-needed
Last-Update: 2013-12-25

Patch-Name: mkconfig_ubuntu_distributor.patch
2016-09-18 18:15:56 +01:00
Colin Watson
e3bf0a2276 "single" -> "recovery" when friendly-recovery is installed
If configured with --enable-ubuntu-recovery, also set nomodeset for
recovery mode, and disable 'set gfxpayload=keep' even if the system
normally supports it.  See
https://launchpad.net/ubuntu/+spec/desktop-o-xorg-tools-and-processes.

Author: Stéphane Graber <stgraber@ubuntu.com>
Forwarded: no
Last-Update: 2013-12-25

Patch-Name: mkconfig_ubuntu_recovery.patch
2016-09-18 18:15:55 +01:00
Colin Watson
bc67125716 Handle filesystems loop-mounted on file images
Improve prepare_grub_to_access_device to emit appropriate commands for
such filesystems, and ignore them in Linux grub.d scripts.

This is needed for Ubuntu's Wubi installation method.

This patch isn't inherently Debian/Ubuntu-specific.  losetup and
/proc/mounts are Linux-specific, though, so we might need to refine this
before sending it upstream.  The changes to the Linux grub.d scripts
might be better handled by integrating 10_lupin properly instead.

Patch-Name: mkconfig_loopback.patch
2016-09-18 18:15:55 +01:00
Colin Watson
1db37eb73b Disable gfxpayload=keep by default
Setting gfxpayload=keep has been known to cause efifb to be
inappropriately enabled.  In any case, with the current Linux kernel the
result of this option is that early kernelspace will be unable to print
anything to the console, so (for example) if boot fails and you end up
dumped to an initramfs prompt, you won't be able to see anything on the
screen.  As such it shouldn't be enabled by default in Debian, no matter
what kernel options are enabled.

gfxpayload=keep is a good idea but rather ahead of its time ...

Bug-Debian: http://bugs.debian.org/567245
Forwarded: no
Last-Update: 2013-12-25

Patch-Name: gfxpayload_keep_default.patch
2016-09-18 17:42:44 +01:00
Andrei Borzenkov
7290bb5623 10_linux: avoid multi-device root= kernel argument
If root filesystem is multidev btrfs, do not attempt to pass all devices as
kernel root= argument. This results in splitting command line in GRUB due to
embedded newline and even if we managed to quote it, kernel does not know how
to interpret it anyway. Multidev btrfs requires user space device scanning,
so passing single device would not work too.

This still respects user settings GRUB_DISABLE_LINUX_UUID. Not sure what we
should do in this case.

Closes: 45709
2016-02-01 20:13:48 +03:00
Andrei Borzenkov
104dff36ea grub-mkconfig: use $pkgdatadir in scripts
Otherwise scripts will source wrong grub-mkconfig_lib.
2015-04-29 19:18:54 +03:00
Andrei Borzenkov
cdae5bf208 Avoid use of non-portable echo -n in grub-mkconfig
util/grub-mkconfig_lib.in(version_test_gt): "echo -n" is not really needed,
final newline is stripped by command substitution.

util/grub.d/10_kfreebsd.in, util/grub.d/10_linux.in,
util/grub.d/20_linux_xen.in: change how list is built, to avoid echo -n
completely.

util/grub.d/30_os-prober.in: add spaces to printed line directly

Closes 43668.
2014-12-07 14:56:17 +03:00
Colin Watson
0901e7855f Fix an infinite loop in grub-mkconfig
* util/grub.d/10_hurd.in: Make kernel list progression not fail on
kernels whose paths contain regex metacharacters.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.

Reported by: Heimo Stranner.
2014-07-08 23:54:30 +01:00
Vladimir Serbinenko
faf4a65e1e Revert grub-file usage in grub-mkconfig. 2013-12-24 17:47:27 +01:00
Vladimir Serbinenko
ec824e0f2a Implement grub_file tool and use it to implement generating of config
in separate root.
2013-12-17 14:39:48 +01:00
Vladimir Serbinenko
4c4ea9c7b5 Merge GRUBFS and GRUB_FS variables. 2013-12-07 16:09:39 +01:00
Vladimir Serbinenko
323de05ba2 Support GRUB_DISABLE_SUBMENU config.
Inspired by patch from Prarit Bhargava.
2013-11-04 00:15:31 +01:00
Tim Hardeck
9c262ff966 * util/grub.d/10_hurd.in: Filter out character for the class.
* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
2013-09-23 17:48:38 +02:00
Vladimir 'phcoder' Serbinenko
140acd3c83 * util/grub-mkconfig_lib.in (grub_tab): New variable.
(grub_add_tab): New function.
	* util/grub.d/10_hurd.in: Replace \t with $grub_tab orgrub_add_tab.
	* util/grub.d/10_illumos.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/10_xnu.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
2012-09-18 13:04:06 +02:00
Vladimir 'phcoder' Serbinenko
a885261b5d * util/grub-mkconfig_lib.in (grub_quote): Remove extra layer of escape.
* util/grub.d/10_hurd.in: Add missing quoting.
	* util/grub.d/10_illumos.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
2012-07-22 20:02:17 +02:00
Mike Gilbert
f8315e145d * util/grub.d/10_linux.in: Fix detection of genkernel initramfs. 2012-04-18 23:25:21 +02:00
Vladimir 'phcoder' Serbinenko
1039c8eba4 * util/grub.d/10_linux.in: Use stat if grub-probe on root fails.
* util/grub.d/20_linux_xen.in: Likewise.
	Based on Debian patch.
2012-03-10 15:21:25 +01:00
Vladimir 'phcoder' Serbinenko
6dd412cdcc * util/grub.d/10_linux.in: Fix syntax error resulting in
Richard Laager's patch.
	* util/grub.d/20_linux_xen.in: Propagate Richard Laager's patch.
2012-03-10 14:42:26 +01:00
Richard Laager
7eea167113 * util/grub.d/10_linux.in: Fix ZFS root passing. 2012-03-10 13:36:08 +01:00
Vladimir 'phcoder' Serbinenko
0cdc126ca2 Use submenus in grub-mkconfig.
* util/grub-mkconfig.in: Define GRUB_ACTUAL_DEFAULT.
	* util/grub-mkconfig_lib.in (grub_quote): New function.
	(gettext_printf): Use gettext and not gettext_quoted to fix several
	messages.
	* util/grub.d/10_hurd.in: Use submenus.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
	* util/grub.d/10_illumos.in: Add missing quoting.
	* util/grub.d/10_windows.in: Likewise.
2012-03-04 22:18:33 +01:00
Vladimir 'phcoder' Serbinenko
d9bef9bc43 Fix menu title instability bug.
* grub-core/commands/menuentry.c (options): New option --id.
	(grub_normal_add_menu_entry): New argument id. All users updated.
	(grub_cmd_menuentry): Handle --id.
	(grub_menu_init): Accept unknown arguments.
	* grub-core/normal/main.c (features): Add feature_menuentry_id and
	feature_menuentry_options.
	* grub-core/normal/menu.c (grub_menu_execute_entry): Use id for
	saved_entry.
	(get_entry_number): Match with id as well.
	* include/grub/menu.h (grub_menu_entry): New member id.
	* util/grub-mkconfig_lib.in (grub_get_device_id): New function.
	* util/grub.d/00_header.in: Define menuentry_id_option.
	* util/grub.d/10_hurd.in: Define id.
	* util/grub.d/10_illumos.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
2012-03-04 14:55:13 +01:00
Richard Laager
817e6abcd0 * util/grub.d/10_linux.in: Add ZFS-related arguments.
* util/grub.d/20_linux_xen.in: Likewise.

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-02-27 19:07:09 +01:00
Vladimir 'phcoder' Serbinenko
67093bc0ed Another round of string clarification and adding TRANSLATORS comments. 2012-02-26 17:28:05 +01:00
Vladimir 'phcoder' Serbinenko
a32d5c712d * util/grub-mkstandalone.in: Fix help messages. Gettextize.
* util/grub-install.in: Gettextize.
	* util/grub-mkconfig.in: Likewise.
	* util/grub-mkconfig_lib.in: Replace gettext with echo -n and not echo
	if not available.
	(grub_warn): Gettextize.
	* util/grub-mknetdir.in: Gettextize.
	* util/grub-mkrescue.in: Likewise.
	* util/grub-mkstandalone.in: Likewise.
	* util/grub-reboot.in: Likewise.
	* util/grub-set-default.in: Likewise.
	* util/grub.d/00_header.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
	* po/POTFILES-shell.in: Regenerate.
2012-02-03 11:42:22 +01:00
Vladimir 'phcoder' Serbinenko
48b391e9ab Handle newer autotools. Add some missing quotes while on it.
* Makefile.am (pkglib_DATA): Remove update-grub_lib.
	(pkglib_DATA): Move grub-mkconfig_lib from here ...
	(pkgdata_DATA): ... here.
	* Makefile.util.def (update-grub_lib): Removed.
	* conf/Makefile.common (pkglib_DATA): Removed.
	(pkglib_SCRIPTS): Likewise.
	(pkgdata_DATA): New variable.
	* tests/util/grub-shell-tester.in: Replace pkglib with pkgdata where
	needed.
	Add missing quotes.
	Remove unused variable while on it.
	* tests/util/grub-shell.in: Likewise.
	* util/grub-install.in: Likewise.
	* util/grub-mkconfig.in: Likewise.
	* util/grub-mknetdir.in: Likewise.
	* util/grub-mkrescue.in: Likewise.
	* util/grub-mkstandalone.in: Likewise.
	* util/grub.d/00_header.in: Likewise.
	* util/grub.d/10_hurd.in: Likewise.
	* util/grub.d/10_illumos.in: Likewise.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
	* util/update-grub_lib.in: Removed.
2012-01-24 13:17:36 +01:00
crocket
9cc3581d7d * util/grub.d/10_linux.in: Add Slackware initrd naming. 2011-11-03 15:21:47 +01:00
Vladimir 'phcoder' Serbinenko
7bec1053db * util/grub.d/10_hurd.in: Add datarootdir as per automake manual
suggestion.
	* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/10_netbsd.in: Likewise.
	* util/grub.d/10_windows.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
2011-10-23 22:40:26 +02:00
Grégoire Sutre
77546584e1 Use @PACKAGE@ instead of hardcoded name when sourcing grub-mkconfig_lib. 2011-07-02 21:22:19 +02:00
Vladimir 'phcoder' Serbinenko
90c571a47f * util/grub.d/10_linux.in: Autoload gzio since it's needed on some
platforms if kernel is compressed.
2011-05-14 22:47:28 +02:00
Vladimir 'phcoder' Serbinenko
56dbe7b485 * util/grub.d/10_linux.in: Correctly handle the Linux in root. 2011-05-10 10:40:22 +02:00
Colin Watson
e74c31125d * util/grub.d/10_linux.in: Add rootflags=subvol=<name> if / is on a
btrfs subvolume.
* util/grub.d/20_linux_xen.in: Likewise.
2011-04-13 12:57:26 +01:00
Alexey Shvetsov
fd7cd914c6 * util/grub.d/10_linux.in: Add gentoo-specific config filename.
* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 20:53:23 +02:00
Vladimir 'phcoder' Serbinenko
090b1b6ac6 * util/grub.d/10_linux.in: Try alternative config filenames where
we parse config file.
	* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 20:42:42 +02:00
Alexey Shvetsov
baad885c14 * util/grub.d/10_linux.in: Add gentoo-specific Linux and initrd names.
* util/grub.d/20_linux_xen.in: Likewise.
2011-03-30 19:22:28 +02:00
Vladimir 'phcoder' Serbinenko
fc18f6a3cb * util/grub.d/10_linux.in: Skip vmlinux-* on x86 platforms. 2011-03-29 19:47:34 +02:00
Colin Watson
22b28eb3fe * util/grub-install.in: Remove unnecessary brackets from tr
arguments.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
Reported by: Jamie Heilman.  Fixes Debian bug #612564.
2011-02-09 11:23:11 +00:00
Colin Watson
4e01b6c821 * util/grub-mkconfig_lib.in (gettext_quoted): Add clarifying
comment.  Add an extra layer of quotation, requiring the output of
this function to be used in a printf format string.
(gettext_printf): New function.
* util/grub.d/10_hurd.in: Use gettext_printf where appropriate.
Extract translatable strings from here-documents and use a temporary
variable instead, so that xgettext can find them.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.

* po/grub.d.sed: New file.
* po/Makefile.in.in ($(DOMAIN).pot-update): Extract gettext_printf
arguments.  Set c-format flags on all strings extracted from
util/grub.d/ (xgettext refuses to include these itself for strings
it extracted from a shell file, but these really are c-format).
2010-12-21 12:49:29 +00:00
Vladimir 'phcoder' Serbinenko
74aaf558ef * util/grub.d/10_hurd.in: Don't call savedefault on recovery entries.
* util/grub.d/10_kfreebsd.in: Likewise.
	* util/grub.d/10_linux.in: Likewise.
	* util/grub.d/20_linux_xen.in: Likewise.
2010-11-01 12:49:40 +01:00
Vladimir 'phcoder' Serbinenko
f8729d984a * util/grub.d/10_linux.in: Add missing load_video with explicit
GRUB_GFXPAYLOAD_LINUX.
2010-11-01 12:36:00 +01:00
BVK Chaitanya
6351c13140 fix built-in initramfs case 2010-10-18 13:38:42 +05:30
Robert Millan
2d5fed60d0 2010-10-15 Robert Millan <rmh@gnu.org>
* util/grub.d/10_linux.in (list): Expand "vmlinu[zx]" instances to
	guarantee compressed ones are processed first.
2010-10-15 12:06:13 +02:00