|
|
6edea0 |
From 689454c727c2730b6aa89ee4c4b7676900e07f78 Mon Sep 17 00:00:00 2001
|
|
|
6edea0 |
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
|
6edea0 |
Date: Fri, 12 Apr 2019 16:26:59 +0200
|
|
|
6edea0 |
Subject: [PATCH] Do not require non-empty kernel cmdline
|
|
|
6edea0 |
|
|
|
6edea0 |
When booting with Fedora-Server-dvd-x86_64-30-20190411.n.0.iso,
|
|
|
6edea0 |
/proc/cmdline is empty (libvirt, qemu host with bios, not sure if that
|
|
|
6edea0 |
matters), after installation to disk, anaconda would "crash" in kernel-core
|
|
|
6edea0 |
%posttrans, after calling kernel-install, because dracut would fail
|
|
|
6edea0 |
with
|
|
|
6edea0 |
> Could not determine the kernel command line parameters.
|
|
|
6edea0 |
> Please specify the kernel command line in /etc/kernel/cmdline!
|
|
|
6edea0 |
|
|
|
6edea0 |
I guess it's legitimate, even if unusual, to have no cmdline parameters.
|
|
|
6edea0 |
Two changes are done in this patch:
|
|
|
6edea0 |
1. do not fail if the cmdline is empty.
|
|
|
6edea0 |
2. if /usr/lib/kernel/cmdline or /etc/kernel/cmdline are present, but
|
|
|
6edea0 |
empty, ignore /proc/cmdline. If there's explicit configuration to
|
|
|
6edea0 |
have empty cmdline, don't ignore it.
|
|
|
6edea0 |
|
|
|
6edea0 |
(cherry picked from commit 38b4f4b21c3c6107d7a562fcb432237464440b91)
|
|
|
6edea0 |
|
|
|
6edea0 |
Resolves: #1746069
|
|
|
6edea0 |
---
|
|
|
6edea0 |
50-dracut.install | 4 +---
|
|
|
6edea0 |
51-dracut-rescue.install | 10 +---------
|
|
|
6edea0 |
2 files changed, 2 insertions(+), 12 deletions(-)
|
|
|
6edea0 |
|
|
|
6edea0 |
diff --git a/50-dracut.install b/50-dracut.install
|
|
|
6edea0 |
index 139ff82e..b897db84 100755
|
|
|
6edea0 |
--- a/50-dracut.install
|
|
|
6edea0 |
+++ b/50-dracut.install
|
|
|
6edea0 |
@@ -35,9 +35,7 @@ case "$COMMAND" in
|
|
|
6edea0 |
read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline
|
|
|
6edea0 |
elif [[ -f /usr/lib/kernel/cmdline ]]; then
|
|
|
6edea0 |
read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline
|
|
|
6edea0 |
- fi
|
|
|
6edea0 |
-
|
|
|
6edea0 |
- if ! [[ ${BOOT_OPTIONS[*]} ]]; then
|
|
|
6edea0 |
+ else
|
|
|
6edea0 |
read -r -d '' -a BOOT_OPTIONS < /proc/cmdline
|
|
|
6edea0 |
fi
|
|
|
6edea0 |
|
|
|
6edea0 |
diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install
|
|
|
6edea0 |
index 0580062f..5ac34ef3 100755
|
|
|
6edea0 |
--- a/51-dracut-rescue.install
|
|
|
6edea0 |
+++ b/51-dracut-rescue.install
|
|
|
6edea0 |
@@ -47,9 +47,7 @@ if [[ -f /etc/kernel/cmdline ]]; then
|
|
|
6edea0 |
read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline
|
|
|
6edea0 |
elif [[ -f /usr/lib/kernel/cmdline ]]; then
|
|
|
6edea0 |
read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline
|
|
|
6edea0 |
-fi
|
|
|
6edea0 |
-
|
|
|
6edea0 |
-if ! [[ "${BOOT_OPTIONS[@]}" ]]; then
|
|
|
6edea0 |
+else
|
|
|
6edea0 |
read -r -d '' -a line < /proc/cmdline
|
|
|
6edea0 |
for i in "${line[@]}"; do
|
|
|
6edea0 |
[[ "${i#initrd=*}" != "$i" ]] && continue
|
|
|
6edea0 |
@@ -57,12 +55,6 @@ if ! [[ "${BOOT_OPTIONS[@]}" ]]; then
|
|
|
6edea0 |
done
|
|
|
6edea0 |
fi
|
|
|
6edea0 |
|
|
|
6edea0 |
-if ! [[ ${BOOT_OPTIONS[*]} ]]; then
|
|
|
6edea0 |
- echo "Could not determine the kernel command line parameters." >&2
|
|
|
6edea0 |
- echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2
|
|
|
6edea0 |
- exit 1
|
|
|
6edea0 |
-fi
|
|
|
6edea0 |
-
|
|
|
6edea0 |
if [[ -d "${BOOT_DIR_ABS%/*}" ]]; then
|
|
|
6edea0 |
BOOT_DIR="/${MACHINE_ID}/0-rescue"
|
|
|
6edea0 |
BOOT_ROOT=${BOOT_DIR_ABS%$BOOT_DIR}
|
|
|
6edea0 |
|