320 likes | 495 Views
CIT 500: IT Fundamentals. Startup. Topics. Booting Bootstrap loaders Run levels Startup scripts Shutdown and reboot. Booting. ROM boot code (BIOS in PCs) Master Boot Record (MBR) Bootloader Kernel Hardware detection and configuration Creation of system processes
E N D
CIT 500: IT Fundamentals Startup
Topics • Booting • Bootstrap loaders • Run levels • Startup scripts • Shutdown and reboot
Booting • ROM boot code (BIOS in PCs) • Master Boot Record (MBR) • Bootloader • Kernel • Hardware detection and configuration • Creation of system processes • Multiuser operation
BIOS • Load CMOS settings. • Initialize registers and power management. • POST (Power On Self Test.) • Display system settings (if key pressed.) • Activate other BIOSes Disk interfaces Graphics cards Network interfaces • Find bootable device. • Load MBR. • Run MBR program.
MBR 4 primary partitions. One can be used as an extended partition, which is a link to an Extended boot record on the 1st sector of that partition. Each logical partition is described by its own EBR, which links to the next EBR.
GRUB Installation At OS Install Time Most distributions install GRUB. Linux Install grub-install /dev/hda Native install Run grub command from live CD or hard disk. #>> root (hd0,0) #>> setup (hd0) #>> quit
GRUB Boot • Auto boots default OS after timeout. • Key sequences bring up • Menu of boot options (described in menu.lst) • Edit kernel options (runlevel, other features) • GRUB command shell • A boot prompt password may be required before edit/shell access granted. • Can bypass OS security by specifying kernel options or accessing files from GRUB shell.
/boot/grub/menu.lst # timeout (sec) before booting default timeout 10 title CentOS (2.6.18-128.el5) root (hd1,0) kernel /boot/vmlinuz-2.6.18-128.el5 root=/dev/hdb1 ro rhgb quiet initrd /boot/initrd-2.6.18-128.el5.img boot title Windows 2008 root (hd0,0) makeactive chainloader +1
Booting with GRUB Direct Boot Specify OS kernel image to load. Chainloading Specify another bootloader to load. Chainload NTLDR to boot MS Windows.
GRUB Naming Convention GRUB uses BIOS hard disk numbers OS may not number disks identically to BIOS. Examples (hd0,0) First partition of first hard disk (hd1,2) Third partition of second hard disk.
Kernel • GRUB loads kernel file into memory /boot/vmlinuz-VERSION • Kernel uncompresses self and begins running. • Sets up interrupts and virtual memory. • Loads initial RAMdisk into memory /boot/initrd.img-VERSION • Kernel uncompresses initrd and mounts as /sysroot. • Kernel loads drivers and modules from /sysroot. SCSI and RAID drivers, ext3 filesystem module, etc. • Switches from real mode to protected mode. • Creates kernel threads (ksoftirq, khelper, kblockd) • Starts init process.
Kernel Arguments Numeric arguments Specify runlevel. single also specifies single user mode Root device options root= specifies which root device to use ro, rw specify access type Console options console=ttyS1,9600 will use serial console Hardware options Enable, disable specific hardware devices/features.
Run Levels 0 – Shutdown 1 – Single user 2 – Multi-user, no networking 3 – Multi-user, with networking 4 – Unused 5 – Multi-user, networking, and GUI 6 – Reboot
/etc/inittab # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
rc • Run by init with runlevel as argument. • Starts and stops services for each runlevel. • /etc/rc#.d scripts • Symlinks to actual scripts in /etc/init.d • Stops services beginning with K* • Starts services beginning with S* • Executes in ASCII order.
Scripts in runlevel 2 $ ls /etc/rc2.d S05vbesave S13gdm S20openntpd S89cron S08iptables S18hplip S20postfix S91apache2 S10acpid S18portmap S20powernowd S98usplash S10powernowd.early S19cupsys S20rsync S99acpi-support S10sysklogd S20apmd S20ssh S99rc.local S10syslog-ng S20argus-server S20xinetd S99rmnologin S11klogd S20hotkey-setup S21nfs-common S99stop-readahead S12dbus S20makedev S89anacron
Example init.d script #! /bin/sh case "$1" in 'start') if [ -f /usr/local/sbin/sshd ]; then echo "starting SSHD daemon" /usr/local/sbin/sshd & fi ;; 'stop') PID=`/usr/bin/ps -e -u 0 | /usr/bin/fgrep sshd | /usr/bin/awk '{print $1}'` if [ ! -z "$PID" ] ; then /usr/bin/kill ${PID} >/dev/null 2>&1 fi ;; *) echo "usage: /etc/init.d/sshd {start|stop}“ ;; esac
Enabling or Disabling Services Add a new service Install startup script in /etc/init.d Create S symlinks in appropriate runlevels Create K symlinks in appropriate runlevels Prevent a service from starting on boot Remove S links from /etc/rc?.d/* Remove K links from /etc/rc?.d/*
Red Hat service Command Starting or stopping a service service NAME [start,restart,stop] is equivalent to /etc/init.d/NAME [start,restart,stop] Service command options: start restart stop status Use command without any options to get help message with all available options.
Red Hat chkconfig Command List configured services chkconfig Enabling or disabling a service at boot time chkconfig --level # NAME is equivalent to ln –s /etc/init.d/NAME /etc/init.d/rc.d/rc#.d/S??name Adding or removing a service entirely chkconfig --level
Red Hat Service Configuration Red Hat Linuxes use files in /etc/sysconfig VARIABLE=value format Documentation in RHEL manuals Examples desktop: select GNOME, KDE, XFCE desktop iptables: firewall configuration network: hostname, gateway router network-scripts/ifcfg-eth0: eth0 config
Single User Mode Kernel boots (with arg 1 or “single”) System asks for root password Root shell starts No system processes No networking Only root filesystem mounted (read-only). Remount for RW: mount –o remount,rw / Why? Fix w/o user interference: disks, backups, security.
What if single user mode doesn’t work? Bypass init by booting into shell Pass init=/bin/bash argument to kernel. Probably want to specify rw option as well. No need for root password. No housekeeping performed. Boot from CD RedHat CD with linux rescue Knoppix CD
Shutdown shutdown (or init 0) Offers time-delay option. Runs server stop scripts. Kill remaining processes. Flushes writes to disk. halt Kills processes. Flushes writes to disk (sync).
Reboot init 6 shutdown restarts system Ctrl-Alt-Del Defined in /etc/inittab ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now reboot halt restarts system
What's wrong with init? Performance • Starts services sequentially. • Shell scripts spawn lots of processes. Manual configuration • Order to start services determined manually. • i.e. network before auth before nfs. Reliability • Init doesn’t monitor or restart services after boot. Hotplug hardware • Drives mounted at boot. • What about USB or network drives?
Init Alternatives iniNG • Service config specifies dependencies. • need = system/initial net/all; • Starts services in parallel once dependencies met. launchd • Mac replacement for init, rc, cron, atd, inetd • Monitors services, starts on demand. Service Management Facility • Sun replacement for init with service monitoring.
Upstart • Event-based init replacement. • Supports wider range of events than launchd. • Hardware device has been added. • Filesystem has been mounted. • Time-based (can replace cron as well as init.) • File has been modified. • Another job has begun or finished running. • Backwards compatible with /etc/init.d scripts. • Respawns services that are down. • Used in Ubuntu >= 6.10, Fedora >= 9
References • Red Hat, RHEL Installation Guide, http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Installation_Guide/index.html, 2009. • Syed Mansoor Sarwar, Robert Koretsky, Syed Ageel Sarwar, UNIX: The Textbook, 2nd edition, Addison-Wesley, 2004. • Nicholas Wells, The Complete Guide to Linux System Administration, Thomson Course Technology, 2005.