diff options
Diffstat (limited to 'sys-boot/myinitramfs/files/init')
-rwxr-xr-x | sys-boot/myinitramfs/files/init | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys-boot/myinitramfs/files/init b/sys-boot/myinitramfs/files/init index 3cd6ce9..134d85c 100755 --- a/sys-boot/myinitramfs/files/init +++ b/sys-boot/myinitramfs/files/init @@ -29,7 +29,7 @@ fail() { busybox --install -s while true; do echo -e "${C_GRAY}Mount root to /mnt/root and exit shell to switch root.${C_NO}" - # Note this is hack to enable job control + # Note: this is hack to enable job control setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1' echo exec switch_root /mnt/root /sbin/init || echo -e "${C_RED}Root switch failed!${C_NO}" @@ -44,6 +44,7 @@ busybox mount -t devtmpfs none /dev || fail "/dev mount failed!" # Now open and mount root root="" rootflags="" +recovery=false for opt in $(cat /proc/cmdline); do case "$opt" in @@ -53,6 +54,9 @@ for opt in $(cat /proc/cmdline); do rootflags=*) rootflags=${opt:10} ;; + recovery) + recovery=true + ;; BOOT_IMAGE=*|initrd=*) # Ignore those ;; @@ -62,6 +66,8 @@ for opt in $(cat /proc/cmdline); do esac done +$recovery && fail "Requested recovery." + [ -z "$root" ] && fail "Missing root argument!" echo -ne "${C_GRAY}Waiting for root ($root)..." |