1 / 32

CIT 500: IT Fundamentals

Explore the essential components of the booting process, including bootloaders, kernel loading, run levels, and system initialization. Learn how GRUB plays a vital role in managing startup configurations and boot options.

Download Presentation

CIT 500: IT Fundamentals

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CIT 500: IT Fundamentals Startup

  2. Topics • Booting • Bootstrap loaders • Run levels • Startup scripts • Shutdown and reboot

  3. Booting • ROM boot code (BIOS in PCs)‏ • Master Boot Record (MBR)‏ • Bootloader • Kernel • Hardware detection and configuration • Creation of system processes • Multiuser operation

  4. 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.

  5. 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.

  6. 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

  7. 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.

  8. GRUB Menu

  9. GRUB Edit Menu

  10. /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

  11. Booting with GRUB Direct Boot Specify OS kernel image to load. Chainloading Specify another bootloader to load. Chainload NTLDR to boot MS Windows.

  12. 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.

  13. 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.

  14. Kernel Arguments in GRUB

  15. 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.

  16. 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

  17. /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

  18. 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.

  19. 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

  20. 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

  21. 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/*

  22. 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.

  23. 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

  24. 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

  25. 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.

  26. 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

  27. 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).

  28. 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

  29. 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?

  30. 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.

  31. 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

  32. 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.

More Related