76 lines
2.0 KiB
Bash
Executable File
76 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# System initialization sequence:
|
|
#
|
|
# /init (this file)
|
|
# |
|
|
# +--(1) /etc/01_prepare.sh
|
|
# |
|
|
# +--(2) /etc/02_overlay.sh
|
|
# |
|
|
# +-- /etc/03_init.sh
|
|
# |
|
|
# +-- /sbin/init
|
|
# |
|
|
# +--(1) /etc/04_bootscript.sh
|
|
# | |
|
|
# | +-- udhcpc
|
|
# | |
|
|
# | +-- /etc/05_rc.udhcp
|
|
# |
|
|
# +--(2) /bin/sh (Alt + F1, main console)
|
|
# |
|
|
# +--(2) /bin/sh (Alt + F2)
|
|
# |
|
|
# +--(2) /bin/sh (Alt + F3)
|
|
# |
|
|
# +--(2) /bin/sh (Alt + F4)
|
|
|
|
echo "Welcome to \"Minimal Linux Live\" (/init)"
|
|
|
|
# Let's mount all core file systems.
|
|
/etc/01_prepare.sh
|
|
|
|
# Print message on screen.
|
|
cat << CEOF
|
|
|
|
Wait 5 seconds to continue with overlay initialization process or press any
|
|
key for PID 1 shell inside the initramfs area.
|
|
|
|
CEOF
|
|
|
|
# Wait 5 second or until any keybord key is pressed.
|
|
read -t 5 -n1 -s key
|
|
|
|
if [ ! "$key" = "" ] ; then
|
|
# Print message on screen.
|
|
cat << CEOF
|
|
This is PID 1 shell inside the initramfs area. Execute the following in order
|
|
to continue with the overlay initialization process.
|
|
|
|
exec /etc/02_overlay.sh
|
|
|
|
Execute the following in order to skip the overlay initialization and continue
|
|
directly with the system initialization:
|
|
|
|
exec /sbin/init
|
|
|
|
CEOF
|
|
|
|
# Set flag which indicates that we have obtained controlling terminal.
|
|
export PID1_SHELL=true
|
|
|
|
# Interactive shell with controlling tty as PID 1.
|
|
exec setsid cttyhack sh
|
|
fi
|
|
|
|
# Create new mountpoint in RAM, make it our new root location and overlay it
|
|
# with our storage area (if overlay area exists at all). This operation invokes
|
|
# the script '/etc/03_init.sh' as the new init process.
|
|
exec /etc/02_overlay.sh
|
|
|
|
echo "(/init) - you can never see this unless there is a serious bug..."
|
|
|
|
# Wait until any key has been pressed.
|
|
read -n1 -s
|