}
failsafe() {
+ set_state failsafe
[ -n "$ifname" ] && grep "$ifname" /proc/net/dev >/dev/null && {
failsafe_ip
netmsg 192.168.1.255 "Entering Failsafe!"
- telnetd -l /bin/login <> /dev/null 2>&1
+ telnetd -l /bin/login.sh <> /dev/null 2>&1
}
lock /tmp/.failsafe
ash --login
elif [ -x /sbin/hotplug2 ]; then
mount -t tmpfs tmpfs /dev -o size=512K
mknod /dev/console c 5 1
- /sbin/hotplug2 --coldplug --set-rules-file /etc/hotplug2-init.rules
- /sbin/hotplug2 --no-coldplug --persistent --set-rules-file /etc/hotplug2-init.rules &
+ /sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --no-persistent --set-coldplug-cmd /sbin/udevtrigger
+ /sbin/hotplug2 --set-worker /lib/hotplug2/worker_fork.so --set-rules-file /etc/hotplug2-init.rules --persistent &
M0=/dev/ptmx
M1=/dev/ptmx
HOTPLUG=
elif [ -x /sbin/udevd ]; then
mount -n -t tmpfs -o mode=0755 udev /dev
- /sbin/udevd --daemon
- /sbin/udevtrigger
- /sbin/udevsettle
+ [ -d /lib/udev/devices ] && cp -af /lib/udev/devices/* /dev/
+ [ -c /dev/console ] || mknod -m 0600 /dev/console c 5 1
+ [ -c /dev/null ] || mknod -m 0666 /dev/null c 1 3
+ /sbin/udevd --daemon --resolve-names=never
+ /sbin/udevadm trigger
+ /sbin/udevadm settle
M0=/dev/pty/ptmx
M1=/dev/pty/ptmx
HOTPLUG=
fi
-mkdir -p /dev/pts /dev/shm
+[ -d /dev/pts ] || mkdir -p /dev/pts
+[ -d /dev/shm ] || mkdir -p /dev/shm
mount devpts /dev/pts -t devpts
# the shell really doesn't like having stdin/out closed
exec <$M0 >$M1 2>&0
echo "- preinit -"
+set_state preinit
echo "Press CTRL-C for failsafe"
trap 'FAILSAFE=true' INT
trap 'FAILSAFE=true' USR1
-[ -e /etc/preinit.arch ] && . /etc/preinit.arch
-set_state preinit
+if [ -e /etc/preinit.arch ]; then
+ . /etc/preinit.arch
+else
+ sleep 2
+fi
echo "$HOTPLUG" > /proc/sys/kernel/hotplug
+export FAILSAFE
eval ${FAILSAFE:+failsafe}
lock -w /tmp/.failsafe
}
echo "- init -"
-
+
exec /sbin/init
fi