http://www.Linux-Boot.net


Linux-Boot.net

BIOS
CPU Arch

MBR
Boot Stages
Boot Squence
Boot Errors

BootSplash
KDE Splash
FrameBuffer

Booting
Boot-Loaders
SysLinux
Grub
Lilo


RootFS-HOWTO
RootFS-Config
RootFS-HOWTO


InitRD-HOWTO
InitRD
InitRD-Config
InitRD-HOWTO

Creating initrd.gz
RamDisk
Loop

Viewing initrd.gz


Obsolete
initrd/rootfs Scripts

Old Scripts


initrd HOWTO Scripts
rootfs HOWTO Scripts
( Bootable CF, USB, FD, CD )
Standalone Boot
/boot
InitRD
RootFS
Patches


Boot Media
CD-Boot
Floppy-Boot
USB-Boot
Compact-Flash-Boot
Network-Boot
DOS


Chroot


Forgot Root PassWord


CDRW HOWTO



1U Rackmount Chassis

Custom-Chassis.com

Linux-1U.net

1U-ITX.net


ITX-Blades.net


Small PC cases

Mini-Box.net

Wrap-Box.net

Wrap-OS.net


Wan-Sim.net



Linux-Consulting.com

Linux-CAE.net

Linux-Sec.net

Linux-Boot.net

Linux-Backup.net

Linux-Wireless.org

Linux-Office.net

Linux-Video.net

Linux-VOIP.net

Linux-Jobs.net

Linux-Diff.net

1U-Raid5.net

Linux-Howto.net


Spam Reporting



Free Linux CDs

ISO9660.org

Distro-CD.org

Patch-CD.org




Contact



Linux is a registered trademark of
Linus Torvalds

More Linux Legalese


Boot Sequence

  • Stage 0 = in the BIOS
    • Execute a JMP at 0xFFFFFFF0 ( 1st instruction after power on )
    • Power-On-Self-Test
    • Detect hardware
    • Load Interrupt Vector table ( 0x0 )
    • Find Master Boot Sector ( 1st 512Bytes and sector ends with 0xaa55 )
    • Copy Master Boot Sector ( track 0 Sector 0 ) into RAM at 0x7C00
    • Execute ( int 0x19 ) the MBR ( aka 1st Stage Loader ) moved to 0x9000
  • Stage 1 BootLoader ( aka Master Boot Sector )
    • the BootLoader is arch/i386/boot/bootsect.S
      Displays: Loading.....
      • setup() is loaded at 0x00090200
      • zImage is loaded at 0x00010000 bootsect.S -Ttext 0x1000
      • bzImage is loaded at 0x00100000 bbootsect.S -Ttext 0x100000 -D__BIG_KERNEL__
    • Print L than load 2nd stage
    • Print I than execute the 2nd stage
  • Stage 1.5 FS
    • Grub will load its filesystem boot info
  • Stage 2 Main Boot Process
    • Print L than load 2nd stage
    • Read the /boot/map file
    • Print O after the map file was loaded
    • Grub and Lilo will show its kernel options to boot
      Displays: Uncompressing vmlinuz.....
  • Stage 3 Kernel - Hardware Detect and Scan
    • Jump/Execute setup() ( arch/i386/boot/setup.S or bsetup.S )
      • Scan the PCI bus for peripherals: KB, mouse, svga, disks
      • setup interrupts vectors
      • Load the device Drivers ( modules )
      • switch from real-mode to protected mode
    • -- or -- is this where: "uncompressing linux" displays
    • Jump/Execute startup_32() ( arch/i386/kernel/head.S ) ( Start PID=0 )
  • Stage 4 Root FileSystem
    • Jump/Execute start_kernel() ( start PID=1 )
    • Load the optional ramdisk ( execute /linuxrc ) or is it before pid=0
    • run init ( /etc/inittab ) ( PID = 1 )
    • run rc.sysinit
    • run rcx.d init scripts

Boot Sequence URLs


Copyright © 2000
Linux-Consulting
All Rights Reserved.
Updated: Fri Oct 14 15:50:52 2005 PDT