Commit graph

273 commits

Author SHA1 Message Date
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
Andrey Borzenkov
2333a83baa 30_os-prober: derive --class from os-prober generated label
Currently only Windows gets distinguished icons, everything else is displayed
using the same generic one. Add additional --class based on os-prober returned
label, which usually is expected to match primary distribution name.

Also use it for Windows as well - chainloader prober may actually return
different strings (Windows, MS-DOS, Windows9xME).
2015-12-30 22:30:16 +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
Colin Watson
3a310e842f Tolerate devices with no filesystem UUID returned by os-prober
* util/grub.d/30_os-prober.in: Tolerate devices with no filesystem
UUID.  Other parts of grub-mkconfig tolerate these, they were
previously allowed here up to commit
55e706c918, and they can arise in
practice when the system has active LVM snapshots.
Fixes Ubuntu bug #1287436.
2014-04-10 16:54:33 +01:00
Colin Watson
ff66b8e7d8 Prefer more portable test(1) constructs
* util/grub.d/00_header.in (make_timeout): Use && rather than test
-a.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/10_netbsd.in (netbsd_load_fs_module): Use || rather
than test -o.
* util/grub.d/30_os-prober.in: Use && rather than test -a, and ||
rather than test -o.
2014-01-17 15:29:43 +00:00
Vladimir Serbinenko
faf4a65e1e Revert grub-file usage in grub-mkconfig. 2013-12-24 17:47:27 +01:00
Andrey Borzenkov
569766e49b * util/grub.d/00_header.in: Improve compatibility with old config. 2013-12-24 17:26:05 +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
Andrey Borzenkov
ad73cc3312 fix use of grub-probe instead of ${grub_probe} 2013-12-07 14:24:25 +04:00
Colin Watson
9b70860ecc Consolidate timeout generation code a bit. 2013-11-29 16:11:53 +00:00
Colin Watson
095588ef34 Consistently ignore GRUB_TIMEOUT if GRUB_HIDDEN_TIMEOUT is set
Pointed out by Vladimir Serbinenko.
2013-11-29 15:30:44 +00:00
Colin Watson
53cc63bf85 Add GRUB_TIMEOUT_STYLE_BUTTON support
Suggested by Vladimir Serbinenko.
2013-11-29 15:18:05 +00:00
Colin Watson
8f236c1419 Revamp hidden timeout handling
Add a new timeout_style environment variable and a corresponding
GRUB_TIMEOUT_STYLE configuration key for grub-mkconfig.  This
controls hidden-timeout handling more simply than the previous
arrangements, and pressing any hotkeys associated with menu entries
during the hidden timeout will now boot the corresponding menu entry
immediately.

GRUB_HIDDEN_TIMEOUT=<non-empty> + GRUB_TIMEOUT=<non-zero> now
generates a warning, and if it shows the menu it will do so as if
the second timeout were not present.  Other combinations are
translated into reasonable equivalents.
2013-11-28 02:29:15 +00:00
Axel Kellermann
55e706c918 * util/grub.d/30_os-prober.in: Add GRUB_OS_PROBER_SKIP_LIST to
selectively skipping systems.
2013-11-19 23:39:51 +01:00
Lukas Schwaighofer
2d357558fb * util/grub.d/20_linux_xen.in: Don't decompress initrd. 2013-11-12 21:03:27 +01:00
Fam Zheng
e756ec8284 * util/grub.d/30_os-prober.in: Add minix entry. 2013-11-11 00:24:49 +01:00
Vladimir Serbinenko
323de05ba2 Support GRUB_DISABLE_SUBMENU config.
Inspired by patch from Prarit Bhargava.
2013-11-04 00:15:31 +01:00
Vladimir Serbinenko
fb9f12a02d * util/grub.d/30_os-prober.in: Add unhiding of partition if on msdos. 2013-11-02 22:00:59 +01:00
Grégoire Sutre
f37bf9c778 * util/grub.d/00_header.in: Don't use LANG if it's not set. 2013-10-26 20:11:55 +02:00
Samuel Thibault
1db3830418 * util/grub.d/10_hurd.in: Use version_find_latest to sort gnumach
kernels by version order.
2013-10-06 01:52:24 +02: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
Andrey Borzenkov
f25870887b * util/grub.d/30_os-prober.in: Add support for probing EFI
System Partition (as of os-prober 1.58).
2013-05-31 20:29:03 +04:00
Andrey Borzenkov
5945c2f849 Reimplement grub-reboot to not depend on saved_entry. Use next_entry
variable for one time boot menu entry.
2013-05-06 22:13:34 +04:00
Andrey Borzenkov
4eafa17565 * util/grub.d/30_os-prober.in: Add onstr to linux entries in one
more place.
2013-04-19 12:08:46 +04:00
Andrey Borzenkov
f4b1fa4f3c * util/grub.d/30_os-prober.in: Add onstr to entries for visual
distinction.
2013-04-11 15:11:14 +02:00
Fedora Ninjas
1f44478c26 * util/grub.d/30_os-prober.in: Support btrrfs linux-prober extensions. 2013-04-05 14:55:37 +02:00
Vladimir 'phcoder' Serbinenko
ff99babdfe * util/grub.d/20_linux_xen.in: Automatically add no-real-mode edd=off on
non-BIOS platforms.
2013-03-24 14:03:33 +01:00
Vladimir 'phcoder' Serbinenko
a4c3ed4c8f * util/grub.d/10_kfreebsd.in: Correct the patch to zpool.cache as it's
always in /boot/zfs.
	Reported by: Yuta Satoh.
2013-01-03 23:19:19 +01:00
Yuta Satoh
0b716507a1 * util/grub.d/10_kfreebsd.in: Fix improper references to grub-probe by
${grub_probe}
2013-01-03 23:06:07 +01:00
Colin Watson
fd49ceb35c Apply program name transformations at build-time rather than at
run-time.  Fixes Debian bug #696465.

* acinclude.m4 (grub_TRANSFORM): New macro.
* configure.ac: Create output variables with transformed names for
most programs.
* util/bash-completion.d/grub-completion.bash.in: Use
pre-transformed variables for program names.
* util/grub-install.in: Likewise.
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkconfig_lib.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
* tests/util/grub-shell-tester.in: Remove unused assignment.
* tests/util/grub-shell.in: Likewise.
* util/grub.d/00_header.in: Likewise.
2012-12-28 06:57:17 +00:00
Vladimir 'phcoder' Serbinenko
e3501b1306 * util/grub.d/20_linux_xen.in: Addmissing assignment to machine.
Reported by: Eriks Latosheks <foresterlv>.
2012-12-11 17:40:35 +01:00
Grégoire Sutre
03711240c8 Fix ordering and tab indentation of NetBSD boot menu entries. 2012-10-28 11:55:22 +01: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
Vladimir 'phcoder' Serbinenko
1e1eb50e5e * util/grub.d/20_linux_xen.in: Skip xen-syms. 2012-06-05 11:55:48 +02:00
Vladimir 'phcoder' Serbinenko
b105df76f4 * configure.ac: Add condition for COND_HOST_XNU.
* Makefile.util.def (10_xnu): New script.
	* util/grub.d/10_xnu.in: New file, extracted from 30_os_prober.in.
2012-05-29 13:56:21 +02:00
Vladimir 'phcoder' Serbinenko
40e80b9403 * grub-core/normal/main.c (read_config_file): Provide config_file and
config_directory.
	* util/grub.d/41_custom.in: Use config_directoy when available.
2012-05-27 15:34:41 +02:00
Vladimir 'phcoder' Serbinenko
79dbc21c54 * util/grub.d/20_linux_xen.in: Add missing line. 2012-05-14 11:47:22 +02:00
Vladimir 'phcoder' Serbinenko
9133fd053f * util/grub.d/20_linux_xen.in: Update initrd list based on 10_linux.in
counterpart.
2012-05-10 02:36:23 +02:00
Vladimir 'phcoder' Serbinenko
48d57ed779 Revert last commit based on lack of consensus and possible unsmooth migration path 2012-05-04 01:06:21 +02:00
Vladimir 'phcoder' Serbinenko
e0ca063a66 * util/grub.d/00_header.in: Make timeout apply to else
clause of hidden timout.
	Reported by: Mads Kiilerich.
2012-05-04 00:41:57 +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