Discover how a UNIX machine boots
This content is part # of # in the series: Speaking UNIX
This content is part of the series:Speaking UNIX
Stay tuned for additional content in this series.
The AIX operating system is the particular IBM flavor of UNIX. IBM first released AIX in 1986 as AIX version 1.0 and, through several iterations over the past 22 years (AIX version 6.1 was the latest version at the time of writing), AIX has matured into a solid UNIX system.
While many interchange the terms AIX and RS/6000, they are not the same thing. AIX is the UNIX operating system; IBM RS/6000® is the reduced instruction set computer (RISC) server hardware that AIX can run on. IBM initially launched AIX on the IBM 6150 RT workstation; through the years, AIX has progressed through IBM PS/2 Intel® 386 computers, IBM mainframes, and the POWER architecture. AIX now runs on IBM System p™ (formerly known as RS/6000) and System i™ (formerly known as IBM iSeries® and AS/400®) computers.
The AIX boot method
There are three ways to boot the AIX operating system: normal, stand-alone, and network boot.
The typical AIX boot method is the normal boot option. The normal boot option boots AIX from local disks to the server. When complete, the operating system will be in multi-user mode.
The next type of boot on an AIX system is called the stand-alone boot, or maintenance mode option. The stand-alone boot option is similar to the normal boot option, but instead of being brought up in multi-user mode, the system is brought up in single-user maintenance mode. You can stand-alone boot an AIX system in several ways, such as booting the server from removable media (tape or CD), clicking F5 (or F6, depending on the hardware) after the keyboard has been initialized during the initial hardware peripheral checks, or a possible issue has been found (corrupt file system) and the system must be repaired prior to entering normal boot. Some systems may have a key that you can turn to maintenance mode, as well. Stand-along booting the server allows you to install software, correct issues, run diagnostics, and configure hardware without the presence of other users and reducing the risk of locked resources.
The last type of boot is the network boot option. Again, similar to the normal boot option, the AIX system is booted into a multi-user mode. However, with this option, AIX receives its boot information from another server on the network.
The bootlist and how to manage it
Because you can boot AIX from several different types of media, you must have a way to manage the different types. This is where the bootlist comes into play. The bootlist maintains a list of all boot devices available to the system for each boot method.
To view a bootlist for a specific boot method, simply add the switch
In the following example, the normal boot method is displayed. The order the server
will try to boot from is the first local disk (
then by CD (
cd0), and finally by tape
# bootlist -m normal -o hdisk0 cd0 rmt0
To set the bootlist for a specific boot method, type the switch
and the appropriate boot method followed by the desired boot devices. In the
following example, the bootlist for a normal boot is altered to attempt to boot
the server in the order of
bootlist -m normal hdisk0 cd0 cd1
As you can see from the previous examples, the
has been used each time to discern which boot method to modify or display. This
option allows modification to normal, service (single-user maintenance mode), both
(normal and service), and prevboot (the previous bootlist).
The AIX boot sequence
Now that you've selected the boot method, it's time to move to the actual sequence of events that occurs after the server is powered on.
Note: Throughout the rest of this article, you'll boot the server using normal boot mode.
After you've turned on the power and the server is starting, the server's hardware is verified and checked for possible issues. This step is called power-on self-test (POST). While the server is running through its process, POST is checking the memory, keyboard, sound card, and network devices. During this time, if you wanted to enter stand-alone mode (single-user maintenance), you would click F5 or F6 after the keyboard has been initialized. However, in this article, no keystrokes are entered, and the server boots into its normal boot mode.
After the POST process has finished, the bootstrap—or a smaller program used to load a larger program—is loaded into memory. The bootstrap then loads the Boot Logical Volume (BLV) into memory. After the BLV is loaded, the kernel takes over the boot process.
Boot Logical Volume and the bosboot command
The BLV is the location that contains AIX's bootable images. Typically, the BLV can be found on the local disk of the server. The BLV contains the AIX kernel, the rc.boot file, commands required during the boot process, and a trimmed-down version of the Object Data Manager (ODM).
To create bootable images, you use the
bosboot, you create a boot file (that
is, a bootable image) from a RAM disk, a file system, and a kernel. The bootable
image is created along with interfaces with the server's boot Read-Only Storage
(ROS) and Erasable Programmable Read-Only Memory (EPROM).
The following example shows how to create a bootable image on the default BLV on the local fixed disk from which the system boots:
The AIX kernel
The AIX kernel stored in the BLV creates the / (root), /usr, and /var file systems in RAM. Keep in mind that these file systems as well as the kernel are stored in RAM initially during the operating system boot process. Because they are in RAM, they are not accessible to anything outside the BLV.
After the file systems have been loaded into RAM, the kernel executes the
init process, which now takes over the boot process.
The init process
The AIX kernel loads the process
init as process
identifier (PID) 1. This process is the parent, or root, process to all
other processes running on AIX. After the
process has been loaded and is running the boot process,
init calls rc.boot.
The rc.boot file
The rc.boot file has three important cases of execution during the AIX boot-up
process. The first section of rc.boot initializes the system's hardware to
prepare it for the operating system to boot. A limited amount of devices
needed to start the system are configured at this time with the Configuration
During the second section of rc.boot, the file systems /, /usr, and /var as well
as the paging space are mounted. After these file systems have been mounted,
init is replaced with
on the disk as PID 1, and the RAM is cleared.
In the third and final section of rc.boot, the actual
process is executed from disk. When
init is executed,
the /etc/inittab file is read, and each item is executed. During this time, the
/tmp file system is now being mounted to disk. Now that the system is in the
last leg of the boot process, the
is run again on the remaining devices that were not configured in the first
section of rc.boot.
The /etc/inittab file
init process has been executed, the next step is for
init to open /etc/inittab and read each entry. The
purpose of the /etc/inittab file is to deliver to the
process those processes that are started at boot-up and during normal operations.
The format of the /etc/inittab file is very specific, and each field is colon delimited. The format of the /etc/inittab is as follows:
The descriptions for the fields defined in the /etc/inittab file are:
- ID: A unique string that identifies the object.
- Run Level: Execute <Command> when the system has entered
initlevel. For example, if an entry in /etc/inittab is set to have a run level of 2, when the operating system enters
initlevel 2, the command will be executed.
initor run levels are different on AIX from other UNIX- or Linux®based systems. The following run levels are defined in AIX:
- Reserved for future operating system expansion
- 2: Default run level
- 3 through 9: User-definable
- a through c: Unique levels (When
initis executed to a run level a, b, or c, processes are not killed. Processes in these run levels that are not running will be executed, but processes from the previous run level are not touched.)
- Q, q: A quick way to tell
initto rescan the /etc/inittab file
- Action: The action field tells the
initprocess how to treat the process in each respective entry in the inittab file. The following are values to the action field that AIX uses:
- respawn: If the process doesn't exist, start the process. Do not wait for its termination, and continue to scan the inittab file. If the process is terminated, restart it.
- wait: Start the process, and wait for its termination.
- once: Start the process, and do not wait for its termination. If the process is terminated, do not restart it.
- boot: Process the entry only during system boot.
- bootwait: Process the entry the first time the server goes from single-user to multi-user mode.
- powerfail: Only execute the command if
initreceives a power fail signal.
- powerwait: Only execute the command if
initreceives a power fail signal, and wait until the process terminates before continuing to scan the inittab file.
- off: If the process is currently running, send the signal SIGTERM, then SIGKILL in 20 seconds.
- ondemand: This value is the same as respawn but applies only to run levels a, b, and c.
- initdefault: Only scan the entry when
initis initially executed.
- sysinit: Execute the entry before
initaccesses the console before login.
- Command: The final entry's field in the /etc/inittab is the
command field. This is the actual command to execute if <action>
deems it necessary when <run level> has been initiated. When the
command is ready to be executed, AIX will fork the process as
sh -c exec <command>.
The following example shows running a shell script named /usr/bin/rc.atc_bin when run level 2 has been initiated and respawn every other time run level 2 is called:
To disable the same script for run level 0, 1, 3, 6, and 9, use:
Viewing and modifying the inittab
AIX has commands to make your life easier rather than manually changing the /etc/inittab file. The commands follow the same naming convention as other AIX commands:
mkitab: Add records to the inittab file.
The following example adds the /usr/bin/rc.atc_bin script in the inittab with a run level 2.
chitab: Changes records in the inittab file. The syntax is identical to the actual record in the inittab file.
The following example changes the previous example's /usr/bin/rc.atc_bin script in the inittab file to run level 3:
lsitab: List records in the inittab file. Using
lsitabis a safe means of viewing the inittab records individually or all together.
The following example views all records in the inittab file:
This example views only the record identified as CORMANY_BIN:
rmitab: Remove records from the inittab file.
The following example removes the record identified by CORMANY_BIN from the inittab file:
Now that the inittab file has been read and all the proper processes have been executed, the system is at a login waiting for you! You may now log in to and enjoy your AIX system.
It may not seem like a lot when you press the power button on a server and it magically starts up, but as you can see, there's a lot to the AIX system when it is starting. Hopefully, by reading this article you have gained a new appreciation of what AIX has to go through to provide the base of a solid operating system.
- Speaking UNIX: Check out other parts in this series.
- Wikipedia's AIX entry: Read Wikipedia's excellent entry on the AIX operating system for more information about its background and development.
- inittab file information: Learn more about the inittab file from the Combined IBM Systems Information Center.
- IBM trial software: Build your next development project with software for download directly from developerWorks.