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
 |