Pass init argument(s) to real init
Common wisdom to enter single user on Linux is to edit command line and add "single". This was not possible because switch_root was always called with empty init arguments. Collect them from command line and pass to real init when switching root. Signed-off-by: Andrey Borzenkov <arvidjaar@mail.ru>master
parent
01b8cdffca
commit
b63fd4d905
|
|
@ -259,10 +259,10 @@ done
|
|||
|
||||
initargs=""
|
||||
|
||||
read CLINE </proc/cmdline
|
||||
if getarg init= >/dev/null ; then
|
||||
ignoreargs="console BOOT_IMAGE"
|
||||
# only pass arguments after init= to the init
|
||||
read CLINE </proc/cmdline
|
||||
CLINE=${CLINE#*init=}
|
||||
set $CLINE
|
||||
shift
|
||||
|
|
@ -273,6 +273,16 @@ if getarg init= >/dev/null ; then
|
|||
initargs="$initargs $x"
|
||||
done
|
||||
unset CLINE
|
||||
else
|
||||
set $CLINE
|
||||
shift
|
||||
for x in "$@"; do
|
||||
case "$x" in
|
||||
[0-9]|s|S|single|emergency|auto )
|
||||
initargs="$initargs $x"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
# Debug: Copy state
|
||||
|
|
|
|||
Loading…
Reference in New Issue