The Saigon CTT Chapter 8 System Startup and Shutdown The Saigon CTT Objectives Define and explain bootstrap procedure Explain single and multi-user run levels Identify and configure system startup files Perform a clean shutdown procedure Explain and define the maintainance mode The Saigon CTT Standard Boot Process (LILO) System load the Linux bootstrap from default boot device, LILO, which resides in Master Boot Record of hard drive The bootstrap program has ability to boot Linux to single-user or multi-user mode After the bootstrap has loaded the kernel ( stored in the /boot or / partition ) into memory, it relinquishes control to this system The Saigon CTT Standard Boot Process (LILO) The Linux system initializes physical devices, virtual memory controller, and its internal control tables for processes, files, .. The init process is started and it starts all other user processes Before handing control over init, the kernel will create any other kernel threads The Saigon CTT Boot Problems Sometimes, lilo will not able to boot the system, it prints the letters LILO on screen. The problems: disk corrupted, the information on disk geometry is incorrect, or since the new kernel image is installed Troubleshooting: boot the system from bootable CD or floppy and try to repair disk problems or correct the /etc/lilo.conf The Saigon CTT Manual Boot There are times when lilo has loaded the kernel but the kernel does NOT work properly because some of hardware can not be found,…It’s possible to pass configuration to the kernel through lilo at lilo command line when booting: The Saigon CTT Manual Boot List of some important boot prompt arguments : root=/dev/hda1 Tell the kernel which device to be mounted as root file system ramdisk_size=2MB single Define maximum of ramdisk (up to 4MB ) This actually is a parameter passed to init, causes the system to boot in single-user mode mem=192MB Tell the kernel amount of memory ( RAM size ) aha1542=0x334 Set the I/O port address for SCSI Interface Card hdc=cdrom Specifies the third disk device is a CD-ROM Instead of typing them at each reboot, these arguments can be included into the lilo.conf : append=“hdc=cdrom” The Saigon CTT Manual Boot More information about boot prompt and arguments can be found at: http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html Refers to man 5 lilo.conf for a detailed information about arguments The Saigon CTT Startup Flow Control It used to run Linux system at level 3 The Saigon CTT Run Levels Runlevel 0 Shutdown mode. Tasks: killing all /etc/rc.d/rc0.d processes and unmounting file systems Runlevel 1 Single-user mode, generally used by /etc/rc.d/rc1.d system administrator when doing maintenance/recovery of the system Runlevel 2 Multi-user mode, some network /etc/rc.d/rc2.d services are not started : NFS, … Runlevel 3 Multi-user mode, all network services /etc/rc.d/rc3.d are started The Saigon CTT Run Levels Runlevel 4 User defined run level /etc/rc.d/rc4.d Runlevel 5 Multi-user X11 mode. All services that /etc/rc.d/rc5.d are started in run level 3 are generally started Runlevel 6 Reboot runlevel. /etc/rc.d/rc6.d Runlevel s/S Single-user mode. /etc/rc.d/rcS.d Runlevel a/b/c Pseudo states. (rarely used) The Saigon CTT Run Levels Using Use /sbin/runlevel to get current run level How to start X window ? RedHat and TurboLinux : # init 5 Debian : # init 2 SuSE and Caldera: # init 3 Slackware : # init 4 Reboot : # init 6 Shutdown : # init 0 To manual set default run level at boot time, open /etc/inittab and look for this line : id:5:initdefault: The Saigon CTT The init Control File: /etc/inittab The init process uses /etc/inittab as its control file : • This is a text file, can be edited by the system admin • init must be told about changes to /etc/inittab by: # init q • One line per process to run at define run levels • Lines starting with ‘#’ are comments Processes run from /etc/inittab are daemons Init read /etc/inittab every time the run level is changed The Saigon CTT Structure of /etc/inittab Each line has 4 fields seperated by colons: id:level:action:command id level Unique identifier for line (up to 4 alphanumeric characters) Run level(s) to activate processs action Keyword for how to run process command Full path name and parameters of command to be executed The Saigon CTT Structure of /etc/inittab The main inittab action keywords are: off Do not run this command. Used to retain an entry but to disable it. wait Run command and wait for completion once Run command but do not wait. Daemons processes are often started this way respawn Run command; If process exists, then rerun it. Used for commands that have to start again after completion, like getty and ttymon sysinit Run command at first init boot bootwait Run command at boot time but do not wait Like boot but wait for completion initdefault Defines default boot level The Saigon CTT /etc/inittab # more /etc/inittab ... id:3:initdefault: #System initialization si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 The Saigon CTT Run Command Scripts The run commands scripts are kept under /etc/rc.d/ and are initiated by init with directions from /etc/inittab The script called rc itself runs startup programs in sub-directories under /etc/rc.d/ • rc 0 looks in /etc/rc.d/rc0.d for runlevel 0 • rc 1 looks in /etc/rc.d/rc1.d for runlevel 1 • rc 2 looks in /etc/rc.d/rc2.d for runlevel 2 • etc … The Saigon CTT Run Command Scripts These startup programs are symbolic links to the actual scripts in the /etc/init.d/ The startup link names are formatted: first character is S (started) or K (killed or stopped), the next two digits identify the order that scripts are executed by rc program The Saigon CTT Changing Run Levels Use init command to change between run levels. Syntax : init <runlevel> Examples : # init 0 # init 6 Shutdown system Reboot system # init 3 # init 5 Change to runlevel 3, multi-user text mode Change to runlevel 5, multi-user X11 mode The Saigon CTT Shuting Down Use shutdown commansd. It differs from “init 0” when allowing to specify time to exit, warn users what happens, … Make sure that you follow the proper shutdown procedure. Do NOT simply shut off the power # shutdown Default system shutdown (run level 1) # shutdown –r now Reboot the system now (run level 6) # shutdown –h 2:00 Halt the system at 2:00AM (run level 0) The Saigon CTT Maintenance Mode When the system doesn’t work because problems. The simplest and best solution is to shut down the system to maintenance mode (run level 1) or reboot the system to single-user mode (run level S) and try to fix problems The Saigon CTT Summary Define and explain bootstrap procedure Explain single and multi-user run levels Identify and configure system startup files Perform a clean shutdown procedure Explain and define the maintainance mode