Which of the Following Are Valid Locations That the System Firmware Searches for a Bootable Device
The beginning of the boot process varies depending on the hardware platform being used. Withal, one time the kernel is found and loaded by the kick loader, the default boot process is identical across all architectures. This chapter focuses primarily on the x86 architecture.
When an x86 computer is booted, the processor looks at the finish of system retentivity for the
Basic Input/Output Arrangement
program and runs it. The BIOS controls non simply the first step of the boot process, but as well provides the lowest level interface to peripheral devices. For this reason it is written into read-only, permanent memory and is always available for use.
Other platforms use different programs to perform low-level tasks roughly equivalent to those of the BIOS on an x86 organization. For example, Itanium-based computers use the
Extensible Firmware Interface
One time loaded, the BIOS tests the organisation, looks for and checks peripherals, and then locates a valid device with which to boot the system. Normally, information technology checks any diskette drives and CD-ROM drives nowadays for bootable media, then, failing that, looks to the system’south difficult drives. In almost cases, the order of the drives searched while booting is controlled with a setting in the BIOS, and it looks on the master IDE device on the primary IDE bus. The BIOS and so loads into memory whatever program is residing in the first sector of this device, called the
Master Boot Record
MBR. The MBR is simply 512 bytes in size and contains car code instructions for booting the machine, called a boot loader, along with the partition table. In one case the BIOS finds and loads the boot loader program into memory, it yields command of the boot process to it.
This section looks at the default boot loader for the x86 platform, Chow. Depending on the organisation’due south compages, the boot process may differ slightly. Refer to
Boot Loaders for Other Architectures
for a brief overview of not-x86 kicking loaders. For more data near configuring and using Grub, come across
The Grub Boot Loader
A kick loader for the x86 platform is broken into at least ii stages. The first stage is a small motorcar code binary on the MBR. Its sole job is to locate the second stage boot loader and load the first function of information technology into retentivity.
Grub has the reward of beingness able to read ext2 and ext3
partitions and load its configuration file —
— at kicking fourth dimension. Refer to
Grub Card Configuration File
for information on how to edit this file.
If upgrading the kernel using the
In one case the second phase boot loader is in memory, it presents the user with a graphical screen showing the dissimilar operating systems or kernels information technology has been configured to boot. On this screen a user can use the pointer keys to choose which operating system or kernel they wish to kick and press
. If no primal is pressed, the kicking loader loads the default selection afterward a configurable period of fourth dimension has passed.
If Symmetric Multi-Processor (SMP) kernel back up is installed, more one option is presented the start time the organisation is booted. In this situation GRUB displays
If whatsoever problems occur using the SMP kernel, try selecting the a non-SMP kernel upon rebooting.
One time the second phase boot loader has adamant which kernel to boot, it locates the corresponding kernel binary in the
directory. The kernel binary is named using the following format —
corresponds to the kernel version specified in the kicking loader’south settings).
For instructions on using the kicking loader to supply command line arguments to the kernel, refer to
The GRUB Kick Loader
. For data on irresolute the runlevel at the boot loader prompt, refer
Changing Runlevels at Boot Time
The kicking loader then places one or more than appropriate
images into retentiveness. Next, the kernel decompresses these images from memory to
/boot/, a RAM-based virtual file system, via
is used by the kernel to load drivers and modules necessary to boot the system. This is particularly of import if SCSI hard drives are nowadays or if the systems use the ext3 file system.
Once the kernel and the
image(due south) are loaded into memory, the boot loader hands control of the boot process to the kernel.
For a more detailed overview of the Chow boot loader, refer to
The Chow Kick Loader
Once the kernel loads and hands off the kick process to the
control, the same sequence of events occurs on every architecture. So the primary difference betwixt each architecture’s boot process is in the application used to observe and load the kernel.
For example, the Itanium architecture uses the ELILO kick loader, the IBM eServer pSeries architecture uses YABOOT, and the IBM eServer zSeries and IBM S/390 systems use the z/IPL kick loader.
Red Chapeau Enterprise Linux Installation Guide
specific to these platforms for information on configuring their boot loaders.
When the kernel is loaded, information technology immediately initializes and configures the computer’s memory and configures the various hardware fastened to the system, including all processors, I/O subsystems, and storage devices. It then looks for the compressed
image(s) in a predetermined location in memory, decompresses it straight to
/sysroot/, and loads all necessary drivers. Next, information technology initializes virtual devices related to the file system, such every bit LVM or software RAID, earlier completing the
processes and freeing up all the memory the deejay image once occupied.
The kernel then creates a root device, mounts the root partition read-only, and frees whatever unused retentivity.
At this signal, the kernel is loaded into retentivity and operational. However, since at that place are no user applications that let meaningful input to the organization, not much can be done with the organization.
To prepare the user environment, the kernel executes the
program (also called
init) coordinates the residual of the boot procedure and configures the environment for the user.
command starts, it becomes the parent or grandparent of all of the processes that beginning up automatically on the organisation. First, it runs the
script, which sets the environment path, starts swap, checks the file systems, and executes all other steps required for system initialization. For case, nigh systems utilise a clock, then
configuration file to initialize the hardware clock. Some other case is if there are special serial port processes which must be initialized,
command then runs the
script, which describes how the system should be set up in each
SysV init runlevel. Runlevels are a state, or
mode, defined by the services listed in the SysV
is the number of the runlevel. For more information on SysV init runlevels, refer to
SysV Init Runlevels
control sets the source function library,
/etc/rc.d/init.d/functions, for the system, which configures how to start, kill, and determine the PID of a programme.
programme starts all of the background processes by looking in the appropriate
directory for the runlevel specified every bit the default in
directories are numbered to represent to the runlevel they stand for. For instance,
is the directory for runlevel 5.
When booting to runlevel 5, the
programme looks in the
directory to determine which processes to beginning and stop.
Beneath is an instance listing of the
K05innd -> ../init.d/innd K05saslauthd -> ../init.d/saslauthd K10dc_server -> ../init.d/dc_server K10psacct -> ../init.d/psacct K10radiusd -> ../init.d/radiusd K12dc_client -> ../init.d/dc_client K12FreeWnn -> ../init.d/FreeWnn K12mailman -> ../init.d/mailman K12mysqld -> ../init.d/mysqld K15httpd -> ../init.d/httpd K20netdump-server -> ../init.d/netdump-server K20rstatd -> ../init.d/rstatd K20rusersd -> ../init.d/rusersd K20rwhod -> ../init.d/rwhod K24irda -> ../init.d/irda K25squid -> ../init.d/squid K28amd -> ../init.d/amd K30spamassassin -> ../init.d/spamassassin K34dhcrelay -> ../init.d/dhcrelay K34yppasswdd -> ../init.d/yppasswdd K35dhcpd -> ../init.d/dhcpd K35smb -> ../init.d/smb K35vncserver -> ../init.d/vncserver K36lisa -> ../init.d/lisa K45arpwatch -> ../init.d/arpwatch K45named -> ../init.d/named K46radvd -> ../init.d/radvd K50netdump -> ../init.d/netdump K50snmpd -> ../init.d/snmpd K50snmptrapd -> ../init.d/snmptrapd K50tux -> ../init.d/tux K50vsftpd -> ../init.d/vsftpd K54dovecot -> ../init.d/dovecot K61ldap -> ../init.d/ldap K65kadmin -> ../init.d/kadmin K65kprop -> ../init.d/kprop K65krb524 -> ../init.d/krb524 K65krb5kdc -> ../init.d/krb5kdc K70aep1000 -> ../init.d/aep1000 K70bcm5820 -> ../init.d/bcm5820 K74ypserv -> ../init.d/ypserv K74ypxfrd -> ../init.d/ypxfrd K85mdmpd -> ../init.d/mdmpd K89netplugd -> ../init.d/netplugd K99microcode_ctl -> ../init.d/microcode_ctl S04readahead_early -> ../init.d/readahead_early S05kudzu -> ../init.d/kudzu S06cpuspeed -> ../init.d/cpuspeed S08ip6tables -> ../init.d/ip6tables S08iptables -> ../init.d/iptables S09isdn -> ../init.d/isdn S10network -> ../init.d/network S12syslog -> ../init.d/syslog S13irqbalance -> ../init.d/irqbalance S13portmap -> ../init.d/portmap S15mdmonitor -> ../init.d/mdmonitor S15zebra -> ../init.d/zebra S16bgpd -> ../init.d/bgpd S16ospf6d -> ../init.d/ospf6d S16ospfd -> ../init.d/ospfd S16ripd -> ../init.d/ripd S16ripngd -> ../init.d/ripngd S20random -> ../init.d/random S24pcmcia -> ../init.d/pcmcia S25netfs -> ../init.d/netfs S26apmd -> ../init.d/apmd S27ypbind -> ../init.d/ypbind S28autofs -> ../init.d/autofs S40smartd -> ../init.d/smartd S44acpid -> ../init.d/acpid S54hpoj -> ../init.d/hpoj S55cups -> ../init.d/cups S55sshd -> ../init.d/sshd S56rawdevices -> ../init.d/rawdevices S56xinetd -> ../init.d/xinetd S58ntpd -> ../init.d/ntpd S75postgresql -> ../init.d/postgresql S80sendmail -> ../init.d/sendmail S85gpm -> ../init.d/gpm S87iiim -> ../init.d/iiim S90canna -> ../init.d/canna S90crond -> ../init.d/crond S90xfs -> ../init.d/xfs S95atd -> ../init.d/atd S96readahead -> ../init.d/readahead S97messagebus -> ../init.d/messagebus S97rhnsd -> ../init.d/rhnsd S99local -> ../rc.local
Equally illustrated in this listing, none of the scripts that actually showtime and stop the services are located in the
directory. Rather, all of the files in
pointing to scripts located in the
directory. Symbolic links are used in each of the
directories and then that the runlevels can be reconfigured past creating, modifying, and deleting the symbolic links without affecting the actual scripts they reference.
The name of each symbolic link begins with either a
links are processes that are killed on that runlevel, while those outset with an
command first stops all of the
symbolic links in the directory by issuing the
is the process to be killed. It and so starts all of the
symbolic links past issuing
Afterward the system is finished booting, information technology is possible to log in as root and execute these aforementioned scripts to offset and stop services. For instance, the command
Each of the symbolic links are numbered to dictate outset guild. The order in which the services are started or stopped can be altered past changing this number. The lower the number, the earlier it is started. Symbolic links with the same number are started alphabetically.
command has progressed through the appropriate
directory for the runlevel, the
script forks an
process for each virtual panel (login prompt) allocated to the runlevel. Runlevels 2 through 5 accept all 6 virtual consoles, while runlevel 1 (unmarried user mode) has one, and runlevels 0 and 6 have none. The
process opens communication pathways to
, sets their modes, prints the login prompt, accepts the user’s username and password, and initiates the login process.
In runlevel 5, the
runs a script called
script executes the preferred X display manager
xdm, depending on the contents of the
Once finished, the organization operates on runlevel 5 and displays a login screen.