KEMBAR78
5. boot process | ODP
5 – Boot process



Marian Marinov     Borislav Varadinov
CEO of 1H Ltd.   System Administrator
mm@1h.com             bobi [ at ] itp.bg
●   Local boot process
    –   HDD
    –   CD
    –   USB
●   Boot loaders
●   Remote booting
    –   With local drives
    –   Without local drives
➢ Hardware initialization
 ➢ Find all storage controllers
 ➢ Initialize all storage controllers
➢ BIOS storage search
 ➢ Depending on the BIOS boot priority list
  ➢ Hard Disks
  ➢ CD
  ➢ USB
  ➢ Floppy
  ➢ Network
●   Identify bootable device
●   Search for boot loader
●   Copy the loader into memory
➢ Search the first 1024 bytes
➢ If partition table is found, search for the first
PRIMARY partition marked as BOOT
➢ Search the first 1024 bytes of the partition
➢ Load the boot loader into memory
➢ Set the Instruction Pointer to the beginning of
the boot loader binary
Boot loaders


➢   LILO
➢   GRUB/GRUB2
➢   SYS/ISOLINUX
➢   uBoot
➢   PXElinux
Boot loaders
➢ LILO
 ➢ Direct block offset to the kernel
 ➢ The loader and its configuration is written
  directly in the MBR
 ➢ Support for serial console
 ➢ Kernel parameters prompt


      /etc/lilo.conf
      image = /boot/bzImage-3.8.2-terion
        root = /dev/sdb2
        label = Terion-3.8.2
        read-only
Boot loaders

➢ GRUB/GRUB2
 ➢ Only the base loader data is written in the
  MBR, everything else is read from the device
 ➢ Dynamic configuration
 ➢ Shell like command prompt
 ➢ Support for serial console
 ➢ Support network loading of binaries
Boot loaders


➢ GRUB
/boot/grub/menu.lst
title CentOS (2.6.32-279.14.1.el6.x86_64)
       root (hd0,1)
       kernel /vmlinuz-2.6.32-279.14.1.el6.x86_64 ro root=/dev/sda4
crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8
KEYTABLE=us
       initrd /initramfs-2.6.32-279.14.1.el6.x86_64.img
Boot loaders
➢ GRUB2
menuentry 'Fedora (3.7.6-201.fc18.i686)' --class fedora --class gnu-linux --class gnu
--class os {
       load_video
       set gfxpayload=keep
       insmod gzio
       insmod part_msdos
       insmod ext2
       set root='(hd0,msdos5)'
       search --no-floppy --fs-uuid --set=root f098d5f7-abf7-4161-966b-
b265c6179abe
       echo 'Loading Fedora (3.7.6-201.fc18.i686)'
       linux /vmlinuz-3.7.6-201.fc18.i686 root=UUID=c567e7ef-eb7e-4ced-8c21-
64d1075eb72e ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet
SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8
       echo 'Loading initial ramdisk ...'
       initrd /initramfs-3.7.6-201.fc18.i686.img
}
Boot loaders


➢ ISO/SYSLINUX
 ➢ Mainly used for live/install CD/USB
 ➢ Static configuration
 ➢ No command prompt
Boot loaders


➢ uBoot
 ➢ Developed entirely for embedded devices
 ➢ EVERYTHING embedded runs this
 ➢ Configuration similar to SYSLINUX
Network Boot

➢ Optional (boot)ROM
 ➢ Currently implemented directly in the BIOS
    on almost all new hardware

➢   With local storage
➢   Without local storage
Network Boot
                                                                 BIOS


DHCP Server                              Acquire IP address


              Load Network boot loader                        Optional ROM


TFTP Server



                                                              Boot loader

                                             Load OS Kernel




                                                                 Kernel
Boot process




http://academy.telerik.com/student-courses/software-technologies/os-windows-linux/
Beer time
Free Trainings @ Telerik Academy

   Operating Systems @ Telerik Academy
   http://telerikacademy.com/Courses/Courses/Details/35
 Telerik Software Academy

       academy.telerik.com
 Telerik Academy @ Facebook

       facebook.com/TelerikAcademy
 Telerik Software Academy Forums

       forums.academy.telerik.com

5. boot process

  • 1.
    5 – Bootprocess Marian Marinov Borislav Varadinov CEO of 1H Ltd. System Administrator mm@1h.com bobi [ at ] itp.bg
  • 2.
    Local boot process – HDD – CD – USB ● Boot loaders ● Remote booting – With local drives – Without local drives
  • 3.
    ➢ Hardware initialization ➢ Find all storage controllers ➢ Initialize all storage controllers ➢ BIOS storage search ➢ Depending on the BIOS boot priority list ➢ Hard Disks ➢ CD ➢ USB ➢ Floppy ➢ Network
  • 4.
    Identify bootable device ● Search for boot loader ● Copy the loader into memory
  • 5.
    ➢ Search thefirst 1024 bytes ➢ If partition table is found, search for the first PRIMARY partition marked as BOOT ➢ Search the first 1024 bytes of the partition ➢ Load the boot loader into memory ➢ Set the Instruction Pointer to the beginning of the boot loader binary
  • 6.
    Boot loaders ➢ LILO ➢ GRUB/GRUB2 ➢ SYS/ISOLINUX ➢ uBoot ➢ PXElinux
  • 7.
    Boot loaders ➢ LILO ➢ Direct block offset to the kernel ➢ The loader and its configuration is written directly in the MBR ➢ Support for serial console ➢ Kernel parameters prompt /etc/lilo.conf image = /boot/bzImage-3.8.2-terion root = /dev/sdb2 label = Terion-3.8.2 read-only
  • 8.
    Boot loaders ➢ GRUB/GRUB2 ➢ Only the base loader data is written in the MBR, everything else is read from the device ➢ Dynamic configuration ➢ Shell like command prompt ➢ Support for serial console ➢ Support network loading of binaries
  • 9.
    Boot loaders ➢ GRUB /boot/grub/menu.lst titleCentOS (2.6.32-279.14.1.el6.x86_64) root (hd0,1) kernel /vmlinuz-2.6.32-279.14.1.el6.x86_64 ro root=/dev/sda4 crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=us initrd /initramfs-2.6.32-279.14.1.el6.x86_64.img
  • 10.
    Boot loaders ➢ GRUB2 menuentry'Fedora (3.7.6-201.fc18.i686)' --class fedora --class gnu-linux --class gnu --class os { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos5)' search --no-floppy --fs-uuid --set=root f098d5f7-abf7-4161-966b- b265c6179abe echo 'Loading Fedora (3.7.6-201.fc18.i686)' linux /vmlinuz-3.7.6-201.fc18.i686 root=UUID=c567e7ef-eb7e-4ced-8c21- 64d1075eb72e ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 echo 'Loading initial ramdisk ...' initrd /initramfs-3.7.6-201.fc18.i686.img }
  • 11.
    Boot loaders ➢ ISO/SYSLINUX ➢ Mainly used for live/install CD/USB ➢ Static configuration ➢ No command prompt
  • 12.
    Boot loaders ➢ uBoot ➢ Developed entirely for embedded devices ➢ EVERYTHING embedded runs this ➢ Configuration similar to SYSLINUX
  • 13.
    Network Boot ➢ Optional(boot)ROM ➢ Currently implemented directly in the BIOS on almost all new hardware ➢ With local storage ➢ Without local storage
  • 14.
    Network Boot BIOS DHCP Server Acquire IP address Load Network boot loader Optional ROM TFTP Server Boot loader Load OS Kernel Kernel
  • 15.
  • 16.
  • 17.
    Free Trainings @Telerik Academy  Operating Systems @ Telerik Academy  http://telerikacademy.com/Courses/Courses/Details/35  Telerik Software Academy  academy.telerik.com  Telerik Academy @ Facebook  facebook.com/TelerikAcademy  Telerik Software Academy Forums  forums.academy.telerik.com