Back to bug 1900829

Who When What Removed Added
Red Hat Bugzilla 2020-11-23 19:42:01 UTC Pool ID sst_desktop_rhel_8
Red Hat One Jira (issues.redhat.com) 2020-11-23 19:45:37 UTC Link ID Red Hat Issue Tracker - Private RHELPLAN-60270
Peter Kotvan 2021-02-08 07:10:07 UTC Blocks 1903942
Tomas Popela 2021-05-12 05:48:36 UTC Pool ID sst_desktop_rhel_8 sst_desktop_firmware_bootloaders_rhel_8
Kent Perrier 2022-02-24 22:32:12 UTC CC kperrier
Priority unspecified high
Rajesh Dulhani 2022-09-08 08:39:57 UTC CC rdulhani
Marta Lewandowska 2022-09-08 09:19:19 UTC Flags needinfo?(kperrier)
CC mlewando
Kent Perrier 2022-09-08 13:41:45 UTC Flags needinfo?(kperrier)
Petr Janda 2022-09-09 13:53:41 UTC CC pjanda
Jana Heves 2022-09-12 08:52:51 UTC CC jsvarova
Docs Contact jsvarova
Doc Type If docs needed, set a value Known Issue
Jana Heves 2022-09-12 08:58:48 UTC Flags needinfo?(mlewando)
Marta Lewandowska 2022-09-14 08:55:06 UTC Flags needinfo?(mlewando)
Doc Text Cause:
grubby does not work as documented.

Consequence:
When a new kernel is added using grubby and --args is not specified, the default args are passed to the new entry. This is true even when --copy-default is not passed.
However, additional arguments, such as $tuned_params or other args that were added using grubby, do not get passed unless --copy-default is invoked.
(If --args "some args" and --copy-default are passed, then those arguments are appended to the default arguments, as per grubby documentation.)

Workaround:
passing --args "root=/path/to/root/dev" results in args being empty, and sets root path, which would otherwise be empty and result in unbootable entry.

Result:
It's possible to get the desired behavior from grubby.
Jana Heves 2022-09-14 13:02:34 UTC Doc Text Cause:
grubby does not work as documented.

Consequence:
When a new kernel is added using grubby and --args is not specified, the default args are passed to the new entry. This is true even when --copy-default is not passed.
However, additional arguments, such as $tuned_params or other args that were added using grubby, do not get passed unless --copy-default is invoked.
(If --args "some args" and --copy-default are passed, then those arguments are appended to the default arguments, as per grubby documentation.)

Workaround:
passing --args "root=/path/to/root/dev" results in args being empty, and sets root path, which would otherwise be empty and result in unbootable entry.

Result:
It's possible to get the desired behavior from grubby.
. The grubby tool behaves unexpectedly

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument.
On the other hand, when you add additional arguments, such as `$tuned_params` or other arguments, using grubby, the arguments do not get passed unless the `--copy-default` option is invoked.
(If --args "some args" and --copy-default are passed, then those arguments are appended to the default arguments, as per grubby documentation.)

As a workaround:
passing --args "root=/path/to/root/dev" results in args being empty, and sets root path, which would otherwise be empty and result in unbootable entry.
Flags needinfo?(mlewando)
Jana Heves 2022-09-14 13:04:23 UTC Doc Text . The grubby tool behaves unexpectedly

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument.
On the other hand, when you add additional arguments, such as `$tuned_params` or other arguments, using grubby, the arguments do not get passed unless the `--copy-default` option is invoked.
(If --args "some args" and --copy-default are passed, then those arguments are appended to the default arguments, as per grubby documentation.)

As a workaround:
passing --args "root=/path/to/root/dev" results in args being empty, and sets root path, which would otherwise be empty and result in unbootable entry.
.The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params` or other arguments, `grubby` does not pass them unless the `--copy-default` option is invoked.

As a workaround, you can set the /root path to prevent the `grubby` arguments from being empty, which ensures the new kernel entry is bootable:
....
# grubby --args "root=/path/to/root/dev"
....
Marta Lewandowska 2022-09-14 13:46:48 UTC Flags needinfo?(mlewando)
Jana Heves 2022-09-15 08:00:15 UTC Flags needinfo?(mlewando)
Doc Text .The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params` or other arguments, `grubby` does not pass them unless the `--copy-default` option is invoked.

As a workaround, you can set the /root path to prevent the `grubby` arguments from being empty, which ensures the new kernel entry is bootable:
....
# grubby --args "root=/path/to/root/dev"
....
.The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params` or other arguments, `grubby` does not pass them unless the `--copy-default` option is invoked.
Marta Lewandowska 2022-09-15 08:44:21 UTC Flags needinfo?(mlewando)
Jana Heves 2022-09-16 08:46:03 UTC Doc Text .The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params` or other arguments, `grubby` does not pass them unless the `--copy-default` option is invoked.
.The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, `grubby` does not pass them unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either you can set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or you can set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
Jana Heves 2022-09-16 08:48:42 UTC Flags needinfo?(mlewando)
Marta Lewandowska 2022-09-16 12:04:28 UTC Blocks 2127453
Marta Lewandowska 2022-09-16 12:17:45 UTC Flags needinfo?(mlewando)
Jana Heves 2022-09-21 12:33:28 UTC Doc Text .The behavior of grubby does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, `grubby` does not pass them unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either you can set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or you can set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
.The behavior of `grubby` does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, `grubby` does not pass them unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either you can set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or you can set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
Jana Heves 2022-09-22 11:06:13 UTC Doc Text .The behavior of `grubby` does not honor its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, `grubby` does not pass them unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either you can set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or you can set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
.The behavior of `grubby` diverges from its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, the `grubby` tool does not pass these arguments unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
Jana Heves 2022-09-23 11:07:26 UTC Doc Text .The behavior of `grubby` diverges from its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, the `grubby` tool does not pass these arguments unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either set the `root=` argument and leave `--args` empty:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"*
....

* Or set the `root=` argument and the specified arguments, but not the default ones:
+
....
# *grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"*
....
.The behavior of `grubby` diverges from its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, the `grubby` tool does not pass these arguments unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either set the `root=` argument and leave `--args` empty:
+
....
# grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"
....

* Or set the `root=` argument and the specified arguments, but not the default ones:
+
....
# grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"
....
Robbie Harwood 2022-10-04 17:23:57 UTC CC rharwood
Status NEW POST
Lucie Vařáková 2023-01-17 10:28:14 UTC CC lmanasko
Flags needinfo?(jsvarova)
Jana Heves 2023-02-06 12:51:55 UTC Flags needinfo?(jsvarova) needinfo?(mlewando)
Marta Lewandowska 2023-02-06 15:21:12 UTC Flags needinfo?(mlewando)
Jana Heves 2023-02-09 09:38:06 UTC Flags needinfo?(mlewando)
Marta Lewandowska 2023-02-10 10:34:53 UTC Flags needinfo?(mlewando)
Red Hat Bugzilla 2023-04-28 08:28:09 UTC CC rharwood
RHEL Program Management 2023-05-17 11:45:01 UTC Keywords Triaged
Nicolas Frayer 2023-06-13 12:45:14 UTC CC nfrayer
Release Test Team 2023-06-13 14:42:24 UTC Fixed In Version grubby-8.40-48.el8
Link ID Red Hat Issue Tracker RTT-5355
Release Test Team 2023-06-13 14:42:30 UTC Link ID Red Hat Issue Tracker RTT-5356
Marta Lewandowska 2023-06-14 08:44:23 UTC Flags needinfo?(jstodola)
Status POST MODIFIED
errata-xmlrpc 2023-06-14 08:59:37 UTC Status MODIFIED ON_QA
Jan Stodola 2023-06-14 09:41:13 UTC Flags needinfo?(jstodola)
Marta Lewandowska 2023-06-14 09:46:17 UTC Flags needinfo?(jsvarova)
Jana Heves 2023-06-14 10:00:23 UTC Flags needinfo?(jsvarova) needinfo?(mlewando)
Marta Lewandowska 2023-06-14 10:32:41 UTC Flags needinfo?(mlewando)
Marta Lewandowska 2023-06-19 08:31:37 UTC Status ON_QA VERIFIED
Jana Heves 2023-08-07 12:51:30 UTC Doc Text .The behavior of `grubby` diverges from its documentation

When you add a new kernel using the `grubby` tool and do not specify any arguments, `grubby` passes the default arguments to the new entry. This behavior occurs even without passing the `--copy-default` argument. Using `--args` and `--copy-default` options ensures those arguments are appended to the default arguments as stated in the `grubby` documentation.

However, when you add additional arguments, such as `$tuned_params`, the `grubby` tool does not pass these arguments unless the `--copy-default` option is invoked.

In this situation, two workarounds are available:

* Either set the `root=` argument and leave `--args` empty:
+
....
# grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"
....

* Or set the `root=` argument and the specified arguments, but not the default ones:
+
....
# grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"
....
.`grubby` now passes arguments to a new kernel correctly

When you add a new kernel using the `grubby` tool and do not specify any arguments, or leave the arguments blank, `grubby` will not pass any arguments to the new kernel and `root` will not be set. Using the `--args` and `--copy-default` options ensures new arguments are appended to the default arguments.
Doc Type Known Issue Bug Fix

Back to bug 1900829