please review the news item below:

- I am not 100% happy with the title but the 50 char limit
  doesn't allow any more details.

- No Display-If condition because it is neither a genkernel nor
  kexec-tools issue. We maybe even have additional packages
  which are appending to kernel command-line I am not aware of.

- In theory this shouldn't be a news for anyone: If you don't
  use a persistent device name, you are basically asking for
  troubles like that. However, people just using kexec from
  kexec-tools package maybe unaware that auto-detection of
  ROOT device which is the default might cause trouble like
  that because it won't use persistent names.

- Experiencing a boot failure is always bad -- especially for
  headless/remote systems so a warning shouldn't hurt.

- Latest kexec-tools ebuild in repository now also warns user
  in pkg_postinst, see

Title: Multiple root kernel command-line arguments
Author: Thomas Deutschmann <whi...@gentoo.org>
Posted: 2020-08-05
Revision: 1
News-Item-Format: 2.0

Due to genkernel-4.1 development which is changing device manager
from MDEV to (E)UDEV it was noticed that some tools like kexec
append an additional root argument to kernel command-line. If these
tools will set root to a non-persistent device name like
root=/dev/dm-3, the next boot might fail if there is *no* root device
named like that in start environment (i.e. initramfs).

While kexec's runscript was changed in >=sys-apps/kexec-tools-2.0.20-r2
to no longer append root kernel command-line argument when an option
like "--reuse-cmdline" (default) is used, a cold reboot *without*
kexec maybe needed to restore kernel command-line.

NOTE: This issue is *not* specific to kexec or genkernel usage.
Kernel will always use last set root kernel command-line argument.
Any tool which might be appending root argument without a persistent
device name might cause a boot failure if system cannot find that
referenced root device during boot.

To avoid boot problems user should revise their current kernel
command-line (/proc/cmdline) to ensure that only *one* root kernel
command-line argument is set. The usage of persistent device names
like root=UUID=<...> is highly recommended.

Thomas Deutschmann / Gentoo Linux Developer
C4DD 695F A713 8F24 2AA1 5638 5849 7EE5 1D5D 74A5

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to