[PATCH] Pass init argument(s) to real init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I was rather surprised why all my attempts to enter single user were not 
successful :) Simple patch to collect and pass to real init what _looks_ 
like init arguments.

-andrey
--- Begin Message ---
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@xxxxxxx>

---

 modules.d/99base/init |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)


diff --git a/modules.d/99base/init b/modules.d/99base/init
index ab033a7..e5158f8 100755
--- a/modules.d/99base/init
+++ b/modules.d/99base/init
@@ -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

--- End Message ---

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux