Add "rd.cmdline=ask" kernel command line parameter
prompts the user for additional kernel command line parameters
(cherry picked from commit f232f6623d)
Conflicts:
dracut.cmdline.7.asc
modules.d/98systemd/dracut-cmdline.sh
modules.d/99base/init.sh
parent
f679f53b2a
commit
9c2daa5d3a
|
|
@ -81,6 +81,10 @@ rootfstype=ext3
|
|||
enable autoassembly of special devices like cryptoLUKS, dmraid, mdraid or
|
||||
lvm. Default is off as of dracut version >= 024.
|
||||
|
||||
|
||||
**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.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
# 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
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/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
|
||||
|
|
@ -183,6 +183,7 @@ install() {
|
|||
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
|
||||
|
|
@ -212,6 +213,7 @@ install() {
|
|||
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 \
|
||||
|
|
|
|||
|
|
@ -115,6 +115,14 @@ fi
|
|||
|
||||
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
|
||||
|
||||
# run scriptlets to parse the command line
|
||||
make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab'
|
||||
getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline"
|
||||
|
|
|
|||
Loading…
Reference in New Issue