summaryrefslogtreecommitdiff
path: root/sys-boot/myinitramfs/files/init
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2017-06-02 09:59:17 +0200
committerKarel Kočí <cynerd@email.cz>2017-06-02 09:59:17 +0200
commit7dc74b94ec8864f4aa9d221816eadc054e090d7f (patch)
tree337fccbafec3f12d22143c74ea69d57f50564d17 /sys-boot/myinitramfs/files/init
parentee11bb7533c3dc5d39b725881cac04542f575d3c (diff)
downloadgentoo-personal-overlay-7dc74b94ec8864f4aa9d221816eadc054e090d7f.tar.gz
gentoo-personal-overlay-7dc74b94ec8864f4aa9d221816eadc054e090d7f.tar.bz2
gentoo-personal-overlay-7dc74b94ec8864f4aa9d221816eadc054e090d7f.zip
Add recovery mode for myinitramfs
Diffstat (limited to 'sys-boot/myinitramfs/files/init')
-rwxr-xr-xsys-boot/myinitramfs/files/init8
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)..."