Upload
alison-weller
View
226
Download
4
Tags:
Embed Size (px)
Citation preview
Chapter 2Booting and Shutting Down
Kim Grempler (Sections 2.0 to 2.3)
Leon Dague (Sections 2.4 to 2.7)
Bootstrapping
• 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
Reference 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
2 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
Six 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**
Step 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.
Step 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
Step 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
Step 4: Operator Intervention (Single-User Boot Only)
• init notified via command-line flag from kernel
• init creates shell and waits for it to terminate (<control-d> 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
Step 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 system’s disks; Remove files from /tmp– Configure network interfaces; – Start up daemons and network services;– Turn on accounting and quotas
Step 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
Sample 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
Sample 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
Sample 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
Sample 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 exits~rc.boot exits
• No problems in autoboot mode the next init process is /etc/rc
• If problem~single-user (sh process) on console
Sample 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
Sample 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
Sample BSD Startup Scripts/etc/rc (cont.)
• Start standard system daemons (i.e., lpd, inetd, update, uushed)
Sample 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
Sample 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
Sample 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
Sample ATT Startup Scripts
• Leon Continue