was built on. This helps booting, if any disk layout changed, especially in
combination with rd.auto or other parameters specifying the layout.
+**rd.cmdline=ask**::
+ prompts the user for additional kernel command line parameters
+
**rd.fstab=0**::
do not honor special mount options for the root filesystem found in
_/etc/fstab_ of the real root.
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+# See systemd.special(7) for details
+
+[Unit]
+Description=dracut ask for additional cmdline parameters
+DefaultDependencies=no
+Before=dracut-cmdline.service
+After=systemd-journald.socket
+Wants=systemd-journald.socket
+ConditionPathExists=/etc/initrd-release
+ConditionKernelCommandLine=rd.cmdline=ask
+
+[Service]
+Environment=DRACUT_SYSTEMD=1
+Environment=NEWROOT=/sysroot
+Type=oneshot
+ExecStart=-/bin/dracut-cmdline-ask
+StandardInput=tty
+StandardOutput=inherit
+StandardError=inherit
+RemainAfterExit=yes
+KillMode=process
+IgnoreSIGPIPE=no
+
+# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
+# terminates cleanly.
+KillSignal=SIGHUP
--- /dev/null
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+sleep 0.5
+echo
+sleep 0.5
+echo
+sleep 0.5
+echo
+echo
+echo
+echo
+echo "Enter additional kernel command line parameter (end with ctrl-d or .)"
+while read -e -p "> " line; do
+ [[ "$line" == "." ]] && break
+ [[ "$line" ]] && printf -- "%s\n" "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
+done
+
+exit 0
[ -n "$VERSION" ] && info "dracut-$VERSION"
if ! getargbool 1 'rd.hostonly'; then
+ [ -f /etc/cmdline.d/99-cmdline-ask.conf ] && mv /etc/cmdline.d/99-cmdline-ask.conf /tmp/99-cmdline-ask.conf
remove_hostonly_files
+ [ -f /tmp/99-cmdline-ask.conf ] && mv /tmp/99-cmdline-ask.conf /etc/cmdline.d/99-cmdline-ask.conf
fi
info "Using kernel command line parameters:"
ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
+ inst_script "$moddir/dracut-cmdline-ask.sh" /bin/dracut-cmdline-ask
inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
for i in \
dracut-cmdline.service \
+ dracut-cmdline-ask.service \
dracut-initqueue.service \
dracut-mount.service \
dracut-pre-mount.service \
source_conf /etc/conf.d
+if getarg "rd.cmdline=ask"; then
+ echo "Enter additional kernel command line parameter (end with ctrl-d or .)"
+ while read -p "> " line; do
+ [ "$line" = "." ] && break
+ echo "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
+ done
+fi
+
if ! getargbool 1 'rd.hostonly'; then
remove_hostonly_files
fi