From Fedora Project Wiki
(review doc)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<!-- page was renamed from AnacondaHowItWorks
<!-- page was renamed from AnacondaHowItWorks
-->
-->
= II. How Anaconda Works =
= How Anaconda Works =


1 [[Anaconda/Boot| Boot process]]  
[[Anaconda/Boot| Boot process]]  
== II. 1. Boot Process ==
== Boot Process ==


A different boot processes 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 *boot loader*, 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.
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: ===
=== Linux boot process from hard drive: ===


1. PC initializion phase - BIOS, POST.
# PC initialization phase - BIOS, POST.
 
# PC starts boot loader - usually grub or lilo.
2. 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.
3. The bootloader locates kernel image on the hard drive.
# When the root filesystem is mounted, /sbin/init is executed and continues booting the system using inittab and /etc/rc*.d scripts
 
4. The kernel decompresses and loads itself. Once finished it tries to mount the root filesystem.
 
5. 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: ===
=== Linux boot process from CD-ROM: ===


2. PC initializion phase - BIOS, POST.
# PC initialization phase - BIOS, POST.
2. ISOLINUX is invoked from bootable CD in CD-ROM device (=isolinux.bin=)
# ISOLINUX is invoked from bootable CD in CD-ROM device (=isolinux.bin=)
2. ISOLINUX loads the kernel from the CD-ROM device (the =/isolinux= directory on the CD)
# ISOLINUX loads the kernel from the CD-ROM device (the =/isolinux= directory on the CD)
2. ISOLINUX loads the the initrd image (=initrd.img=)
# ISOLINUX loads the the initrd image (=initrd.img=)
2. The kernel then takes over, and attempts to decompresses the initrd.img into memory (=/dev/ram0=), and mounts this new filesystem as root (=/=).
# The kernel then takes over, and attempts to decompress the initrd.img into memory (=/dev/ram0=), and mounts this new filesystem as root (=/=).
2. The kernel attempts to run =/linuxrc= in the newly created root filesystem.
# The kernel attempts to run =/linuxrc= in the newly created root filesystem.
2. 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 linuxrc program then mounts the CD-ROM (by trial and error), and decompresses a 'true' root filesystem from CD-ROM to =/dev/ram1=.
2. 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.
# 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.
2. Finally, the kernel runs the /sbin/loader binary which then invokes the anaconda installer.
# Finally, the kernel runs the /sbin/loader binary which then invokes the anaconda installer.
 
1 actual anaconda process


2 /sbin/init
# actual anaconda process
2 /sbin/loader
## /sbin/init
2 ...
## /sbin/loader
2 probing for hardware (what is happening behind the scenes/what programs are doing what)
## ...
3 Probe for video card
## probing for hardware (what is happening behind the scenes/what programs are doing what)
3 Probe for monitor
### Probe for video card
3 Probe for mouse
### Probe for monitor
2 Welcome to Fedora
### Probe for mouse
2 Choose language for the installation
## Welcome to Fedora
2 Choose the keyboard
## Choose language for the installation
2 Choose the mouse
## Choose the keyboard
2 Choose the monitor
## Choose the mouse
2 Searching for Fedora Core/Red Hat Linux installations (/etc/redhat-release)
## Choose the monitor
2 Upgrade and existing installation or Install Fedora Core
## Searching for Fedora Core/Red Hat Linux installations (/etc/redhat-release)
2 Choose class [Personal Desktop (default), Workstation, Server, Custom]  
## Upgrade and existing installation or Install Fedora Core
2 Partition setup
## Choose class [Personal Desktop (default), Workstation, Server, Custom]  
2 Boot Loader configuration
## Partition setup
3 Change bootloader (no bootloader instead of grub)
## Boot Loader configuration
3 Choose the default OS to boot, and add/remove other OS's from grub
### Change bootloader (no bootloader instead of grub)
3 Setup a bootloader (grub) password
### Choose the default OS to boot, and add/remove other OS's from grub
3 Configure advanced boot loader options
### Setup a bootloader (grub) password
4 Install grub on the MBR (hda) or on the first sector of the boot partition (hda1)
### Configure advanced boot loader options
4 Change drive order
#### Install grub on the MBR (hda) or on the first sector of the boot partition (hda1)
4 Force LBA32
#### Change drive order
4 Other kernel parameters
#### Force LBA32
3 Network configuration
#### Other kernel parameters
3 Firewall configuration
### Network configuration
4 WWW
### Firewall configuration
4 FTP
#### WWW
4 SSH
#### FTP
4 Telnet
#### SSH
4 Mail (SMTP)
#### Telnet
4 Other ports
#### Mail (SMTP)
4 Allow all traffic from a device
#### Other ports
3 Select default language on the system and any other additional languages
#### Allow all traffic from a device
3 Time zone selection
### Select default language on the system and any other additional languages
3 Root password (at least 6 characters long)
### Time zone selection
3 Package Selection (custom install)
### Root password (at least 6 characters long)
3 About to install POINT OF NO RETURN!!
### Package Selection (custom install)
2 ...
### About to install POINT OF NO RETURN!!
## ...


1 [[Anaconda/IsoLinuxOptions|  Anaconda ISOLINUX options]]  
1 [[Anaconda/IsoLinuxOptions|  Anaconda ISOLINUX options]]  

Latest revision as of 08:28, 8 August 2018

How Anaconda Works

Boot process

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:

  1. PC initialization phase - BIOS, POST.
  2. PC starts boot loader - usually grub or lilo.
  3. The bootloader locates kernel image on the hard drive.
  4. The kernel decompresses and loads itself. Once finished it tries to mount the root filesystem.
  5. 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:

  1. PC initialization phase - BIOS, POST.
  2. ISOLINUX is invoked from bootable CD in CD-ROM device (=isolinux.bin=)
  3. ISOLINUX loads the kernel from the CD-ROM device (the =/isolinux= directory on the CD)
  4. ISOLINUX loads the the initrd image (=initrd.img=)
  5. The kernel then takes over, and attempts to decompress the initrd.img into memory (=/dev/ram0=), and mounts this new filesystem as root (=/=).
  6. The kernel attempts to run =/linuxrc= in the newly created root filesystem.
  7. The linuxrc program then mounts the CD-ROM (by trial and error), and decompresses a 'true' root filesystem from CD-ROM to =/dev/ram1=.
  8. 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.
  9. Finally, the kernel runs the /sbin/loader binary which then invokes the anaconda installer.
  1. actual anaconda process
    1. /sbin/init
    2. /sbin/loader
    3. ...
    4. probing for hardware (what is happening behind the scenes/what programs are doing what)
      1. Probe for video card
      2. Probe for monitor
      3. Probe for mouse
    5. Welcome to Fedora
    6. Choose language for the installation
    7. Choose the keyboard
    8. Choose the mouse
    9. Choose the monitor
    10. Searching for Fedora Core/Red Hat Linux installations (/etc/redhat-release)
    11. Upgrade and existing installation or Install Fedora Core
    12. Choose class [Personal Desktop (default), Workstation, Server, Custom]
    13. Partition setup
    14. Boot Loader configuration
      1. Change bootloader (no bootloader instead of grub)
      2. Choose the default OS to boot, and add/remove other OS's from grub
      3. Setup a bootloader (grub) password
      4. Configure advanced boot loader options
        1. Install grub on the MBR (hda) or on the first sector of the boot partition (hda1)
        2. Change drive order
        3. Force LBA32
        4. Other kernel parameters
      5. Network configuration
      6. Firewall configuration
        1. WWW
        2. FTP
        3. SSH
        4. Telnet
        5. Mail (SMTP)
        6. Other ports
        7. Allow all traffic from a device
      7. Select default language on the system and any other additional languages
      8. Time zone selection
      9. Root password (at least 6 characters long)
      10. Package Selection (custom install)
      11. About to install POINT OF NO RETURN!!
    15. ...

1 Anaconda ISOLINUX options

1 Anaconda options