Contents

How Anaconda Works

Boot Process

A different boot process is needed when booting from a CD-ROM because linux does not really know how to do it. When booting from a CD-ROM an initrd (initial ramdisk) is used as the root filesystem. This initrd is loaded by the *bootloader*, not the kernel, making it possible to boot from any device the bootloader can access. ISOLINUX is the boot loader commonly used for booting from a CD-ROM.

Linux boot process from hard drive:

PC initialization phase - BIOS, POST.

PC starts boot loader - usually grub or lilo.

The bootloader locates kernel image on the hard drive.

The kernel decompresses and loads itself. Once finished it tries to mount the root filesystem.

When the root filesystem is mounted, /sbin/init is executed and continues booting the system using inittab and /etc/rc*.d scripts

Linux boot process from CD-ROM:

PC initialization phase - BIOS, POST.

ISOLINUX is invoked from bootable CD in CD-ROM device (=isolinux.bin=)

ISOLINUX loads the kernel from the CD-ROM device (the =/isolinux= directory on the CD)

ISOLINUX loads the the initrd image (=initrd.img=)

The kernel then takes over, and attempts to decompress the initrd.img into memory (=/dev/ram0=), and mounts this new filesystem as root (=/=).

The kernel attempts to run =/linuxrc= in the newly created root filesystem.

The linuxrc program then mounts the CD-ROM (by trial and error), and decompresses a 'true' root filesystem from CD-ROM to =/dev/ram1=.

The kernel takes over and mounts the newly configured root filesystem. The new filesystem is mounted so that a softlink for the CD-ROM can be added in its =/dev= directory, so the system can access the CD-ROM.

Finally, the kernel runs the /sbin/loader binary which then invokes the anaconda installer.

actual anaconda process

/sbin/init

/sbin/loader

...

probing for hardware (what is happening behind the scenes/what programs are doing what)