BIOS Basic Input/Output System Contains information about the machine’s configuration. Eg. IDE controller, NIC PC knows which device to boot from via BIOS PC tries to run code from the MBR, ie. 1 st 512 bytes, of the disk MBR tells the PC to load the boot loader from certain disk partition The boot loader loads the kernel
Boot Loaders - LILO Traditional and stable /etc/lilo.conf boot=/dev/hda root=/dev/hda1 timeout=5 image=/boot/vmlinuz-2.6.20 label=Linux read-only other=/dev/hdb1 label=Windows table=/dev/hdb To install it $ lilo lilo must be run after every reconfiguration
Boot Loaders – LILO (cont) At LILO prompt LILO: linux init=/sbin/init LILO: linux init=/bin/bash LILO: linux root=/dev/hda5 LILO: linux single
Boot Loaders – GRUB GRand Unified Boot loader Default on Red Hat and SuSe Read configuration file at boot time Understand filesystems and kernel executable formats ie. Only need to know the device, disk partition and kernel filename GRUB device (hd0,0) → /dev/hda1 or /dev/sda1 To install GRUB (for the very first time) $ grub-install ‘(hd0,0)’ Edit /boot/grub/grub.conf
Boot Loaders – GRUB (cont) At the splash screen Hit ‘a’ and type “ single” to boot to single-user mode Hit ‘c’ to enter command-line mode To boot other OSes that aren’t in grub.conf Display system information Press TAB to see possible commands
Kernel Initialization A program itself /vmlinuz or /boot/vmlinuz Two-stage loading process initrd (init RAM disk) A transient root filesystem in RAM before a real root filesystem is available Eg. It is used to install file system modules into the kernel The real root filesystem Device detection and configuration You tell the kernel what to expect The kernel probes the H/W itself Kernel threads creation Eg. init (a user process), kjournald, kswapd
Single-user mode A manual mode after kernel initialization and before running startup scripts “single” is passed to init, sulogin is run instead Most system processes are not running Users can’t log in, except root / is mounted read-only $ mount -o rw,remount / Check/repair the disk if there are disk problems $ fsck -y /dev/sda1 Run ‘exit’ to exit single-user mode
Startup/Init Scripts After Kernel initialization, a process called init is created with PID 1 init runs startup scripts (normal shell scripts) to perform specific tasks, eg. Setting the hostname, time zone, etc Checking and mouting the disks Configuring network interfaces Starting up daemons and network services
Startup/Init Scripts (cont) Startup scripts (rc files) are run based on run levels 0the level in which the system is completely shut down 1single-user mode 2multiuser mode w/out NFS 3full multiuser mode 4unused 5X11 6reboot level Starts with run level 0 to the default run level (usually 3) /etc/inittab tells init what to do at each level To find out which run level the system is current in $ runlevel
Startup/Init Scripts (cont) init runs the scripts from /etc/rc.d/rc[0-6].d/ /etc/rc.d/rc0/K25sshd → /etc/init.d/sshd /etc/rc.d/rc3/S55sshd → /etc/init.d/sshd Each server/daemon provides a master script Stored in /etc/init.d Understands the arguments: start, stop, restart /etc/init.d/sshd start run level 0 → 3 /etc/rc.d/rc3/S* start run level 3 → 0 /etc/rc.d/rc0/K* stop Pretty ugly!
Startup/Init Scripts (cont) Use chkconfig instead. Eg. $ chkconfig --add sshd $ chkconfig --del sshd Before that, need to add/modify /etc/init.d/sshd # chkconfig: 2345 55 25 sshd should be started/stopped at run level 2, 3, 4 and 5 with the start priority of 55 and the stop priority of 25
Reboot & Shutdown To reboot $ shutdown -r now $ reboot $ telinit 6 To halt $ shutdown -h now $ halt $ telinit 0 $ poweroff
Reboot & Shutdown (cont) To shutdown gracefully $ shutdown -h +15 “Shutdown in 15 mins”
References LAH Ch 2: Booting and Shutting Down Grub manual http://www.gnu.org/software/grub/manual/grub.html
Your consent to our cookies if you continue to use this website.