Title: Chapter 2 Booting and Shutting Down
1Chapter 2Booting and Shutting Down
- Kim Grempler (Sections 2.0 to 2.3)
- Leon Dague (Sections 2.4 to 2.7)
2Bootstrapping
- A.k.a. Booting
- Kernel loaded into memory and executes
- Initialization tasks performed
- System available to users
- Potential Problems when booting
- Errors in configuration files, missing/unreliable
equipment, or damaged filesystems - Boot configuration is first task of system
administrator, on new system - Booting is hardware-dependent
3Reference Chapters
- Chapter 3 Root Account
- Chapter 4 The Filesystem
- Chapter 7 Devices and Drivers
- Chapter 8 Serial Devices
- Chapter 9 Installing a Boot program
- Chapter 13 Configuring the Kernal
- Chapter 31 Daemons
42 Booting Modes
- Automatic
- Performs boot without external assistance
- Manual
- Automatic procedure until initialization scripts
are run by operator - Single-user mode most system processes not
running and users unable to log in
5Six Steps in Booting Process
- Loading and initialization of the kernel
- Device detection and configuration
- Creation of spontaneous system processes
- Operator intervention (single user boot only)
- Execution of system startup scripts
- Multi-user operation
- Admin. has little control of steps above. Boot
configuration via editing system startup scripts
6Step 1 Loading and Initialization of the Kernal
- Kernal (e.g., program) is loaded into memory to
be executed - Pathname of kernal is vendor dependent
- Example /unix or /vmunix
- 2-stage loading process
- 1st small boot program read into memory to
enable kernal loading (outside domain of Unix) - 2nd kernal runs tests to determine memory
availability - kernels run in a fixed amount of memory and know
what to reserve for internal storage and I/O
buffers.
7Step 2 Device Detection and Configuration
- Kernal performs hardware check
- General hardware device info is incorporated in
kernal configuration - Locate and initialize each device
- Acquire more info via drivers
- If not found, will disable hardware
- If hardware added, must reboot, to access
8Step 3 Creation of Spontaneous System Processes
- After basic initialization, kernel creates
spontaneous processes in users space - Not created via normal UNIX fork mechanism
- fork creates copy of the original process, with
new ID, that is identical to the parent - BSD has 3 processes
- Swapper - process 0 init - process1
pagedaemon - process 2 - ATT varies
- sched - process 0 init - process 1 various
memory handlers - Note- ONLY INIT USER PROCESS
- Kernal role complete init handles processes for
basic operations and UNIX daemons
9Step 4 Operator Intervention (Single-User Boot
Only)
- init notified via command-line flag from kernel
- init creates shell and waits for it to terminate
(ltcontrol-dgt or exit) before continuing on with
rest of startup procedure - Always in bourne shell (e.g., sh) and runs as
root with root partition mounted - Available programs located in /bin, /sbin, /etc,
and /usr other filesystems must be mounted
by operator - Daemons not available
- fsck (checks and repairs filesystems) must be run
by hand
10Step 5 Execution of System Startup Scripts
- The location, content, and organization of shell
(e.g., sh) scripts vary from system to system - BSD kept in /etc and names begin with rc
- ATT kept in /etc/init.d with links made to other
directories such as /etc/rc0.d, /etc/rc1.d - Examples of tasks performed in initialization
scripts - Set computer name Set time zone fsck disk
check - Mount systems disks Remove files from /tmp
- Configure network interfaces
- Start up daemons and network services
- Turn on accounting and quotas
11Step 6 Multi-User Operation
- To complete boot process and allow user access,
init produces getty process on each workstation - BSD init has only two states single-user and
multi-user - ATT init has one single-user and several
multi-user run levels to determine which system
resources are enabled
12Sample BSD Startup Scripts/etc/rc.boot
- First rc script to run is /etc/rc.boot
- The first two lines set HOME and PATH
environment variables - Executes basic system commands during boot
- hostname file in /etc for each network interface
- enables IP networking on each interface
- Reverse Address Resolution Protocol (RARP)
- Find hostname from other machine on NW using
hostconfig program and use NFS to mount
filesystems - System Administrator intervene to fix problem
13Sample BSD Startup Scripts/etc/rc.boot (cont.)
- Address or hostname of default Internet gateway
is read from /etc/defaultrouter - non-local NW connections up prior to more
complicated routing in boot process - /usr filesystem read-only for system check to see
if /fastboot exists - Yes system shut down cleanly filesystems in
consistent state - No all filesystems listed in /etc/fstab checked
in fsck - If disks check cleanly rc.boot runs
/etc/rc.single
14Sample BSD Startup Scripts/etc/rc.single
- Commands in /etc/rc.single are executed at boot
time even if not using single mode - Remounts / and /usr filesystems read/write
- if not remounted system not able to come up
- Cleans out /etc/mtabfile and adds entries for /
and /usr - was previously mounted but not in mtab file
because root filesystem not writable - /usr/kvm mounted clean up shared library cache
15Sample BSD Startup Scripts/etc/rc.single
- /etc/utmp file cleaned out
- contains user list of current log ins
- tzsetup command sets local time zone status of
daylight savings time (kernal is GMT) - loadkeys command sets keyboard mapping
- rc.single exitsrc.boot exits
- No problems in autoboot mode the next init
process is /etc/rc - If problemsingle-user (sh process) on console
16Sample BSD Startup Scripts/etc/rc
- /etc/rc is the main system startup up script in
autoboot after rc.boot - if single-user rc after shell is terminated
- if root filesystems not writable rerun rc.single
- clean up shared library cache
- remove /fastboot file
- /etc/passwd file edited system crashes
- vipw and /etc/rc script make sure password file
not destroyed at crash
17Sample BSD Startup Scripts/etc/rc (cont.)
- Enable quotas
- /bin/ps -u cleans out the ps database (status of
processes) - /etc/nologin created by shutdown to prevent
logins during shutdown - executes rc.local script
- swapon -a to make use of all swap partitions
listed in etc/fstab - expreserve looks in /tmp to find files that were
edited when system went down
18Sample BSD Startup Scripts/etc/rc (cont.)
- Start standard system daemons (i.e., lpd, inetd,
update, uushed)
19Sample BSD Startup Scripts/etc/rc.local
- /etc/rc.local contains commands for local system
- portmap daemon maps RPC (remote procedure call)
service numbers to the NW ports of appropriate
servers - NIS (NW info service) Domain Name set from
/etc/default domain - set subnet mask of all machines interfaces
- default route reset if no default routing daemon
run - list current configuration of NW interfaces on
console
20Sample BSD Startup Scripts/etc/rc.local (cont.)
- All NFS filesystems mounted
- named (server for Domain Name system) maps
between hostnames and Internet addresses - Client side NFS daemon run (biod)
- syslogd responsible for managing log messages
- save kernel core dump in /var/crash/hostname
- Image saved on swap partition save image to real
filesystem - Clean up temporary mail lock files and start
sendmail
21Sample BSD Startup Scripts/etc/rc.local (cont.)
- Make machine NFS Server if filesystems need to be
exported - Daemon to support diskless clients
- rpc.statd and rpc.lockd manage advisory locks on
NFS filesystems - Start automount daemon
- 3rd party vendor install scripts
- Appletalk protocol stack started
- Licensed software add-ons
22Sample ATT Startup Scripts