Implemented another level of "early shell". Now we have 2 early shells - one right after the initial mount procedure and another one right after the overlay procedure.
This commit is contained in:
parent
a01bc817b4
commit
f86add64c6
@ -159,7 +159,7 @@ for DEVICE in /dev/* ; do
|
||||
done
|
||||
|
||||
# Move critical file systems to the new mountpoint.
|
||||
echo "Remounting /dev, /sys, /tmp and /proc in /mnt..."
|
||||
echo "Remounting /dev, /sys, /tmp and /proc in /mnt."
|
||||
mount --move /dev /mnt/dev
|
||||
mount --move /sys /mnt/sys
|
||||
mount --move /proc /mnt/proc
|
||||
@ -168,6 +168,7 @@ mount --move /tmp /mnt/tmp
|
||||
# The new mountpoint becomes file system root. All original root folders are
|
||||
# deleted automatically as part of the command execution. The '/sbin/init'
|
||||
# process is invoked and it becomes the new PID 1 parent process.
|
||||
echo "Moving from initramfs root area to overlayfs root area."
|
||||
exec switch_root /mnt /etc/03_init.sh
|
||||
|
||||
echo "(/etc/02_overlay.sh) - there is a serious bug..."
|
||||
|
@ -37,13 +37,15 @@
|
||||
#
|
||||
# exec /sbin/init
|
||||
|
||||
# Print message on screen.
|
||||
cat << CEOF
|
||||
|
||||
Wait 5 seconds for the default system initialization process based on the
|
||||
files /sbin/init and /etc/inittab or press any key for PID 1 shell.
|
||||
Wait 5 seconds for the system initialization process or press any key for
|
||||
PID 1 shell outside of the initramfs area.
|
||||
|
||||
CEOF
|
||||
|
||||
# Wait 5 second or until any keybord key is pressed.
|
||||
read -t 5 -n1 -s key
|
||||
|
||||
if [ "$key" = "" ] ; then
|
||||
@ -51,20 +53,23 @@ if [ "$key" = "" ] ; then
|
||||
echo "Executing /sbin/init as PID 1."
|
||||
exec /sbin/init
|
||||
else
|
||||
|
||||
# Using no indentation for this snippet or otherwise it causes kernel panic.
|
||||
# Print message on screen.
|
||||
cat << CEOF
|
||||
|
||||
This is PID 1 shell. Execute the following in order to continue with the
|
||||
default system initialization process:
|
||||
This is PID 1 shell outside of the initramfs area. Execute the following in
|
||||
order to continue with the system initialization.
|
||||
|
||||
exec /sbin/init
|
||||
|
||||
CEOF
|
||||
|
||||
if [ "$PID1_SHELL" = "true" ] ; then
|
||||
# PID1_SHELL flag is set which means we have controlling terminal.
|
||||
exec sh
|
||||
else
|
||||
# Interactive shell with controlling tty as PID 1.
|
||||
exec setsid cttyhack sh
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "(/etc/03_init.sh) - there is a serious bug..."
|
||||
|
||||
|
@ -31,6 +31,39 @@ 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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user