相对 Linux 来说,AIX 启动过程较为复杂些,AIX 的启动过程可以简单分为三个过程来完成,接下来听偶一一道来,如有不对之处,请阁下指出!并欢迎批评。
1. 阶段一:
1.1 首先用OCS(On-Chip Sequencer)调用微处理器检查主板是否有问题,如没问题就交控制权交给
只读储存器(ROS),即 Read Only Storage,然后执行系统加电自检(POST)。
1.2 加电完成后,ROS 将检查自定义引导列表, 引导设备包括:磁盘、磁带、CD-ROM、以太网等。如
果自定义引导设备列表无法找到引导设备,ROS 将会检查默认引导设备列表,如果再次无法找到引导设备,
系统将无法启动。在自定义引导设备列表或默认引导设备列表中如找到引导设备,ROS 就会查找引导设备中
第一个引导记录,并查找引导设备中引导逻辑卷(Boot Logical Volume,简称BLV)的长度和BLV的地址,
且将 BLV 载入内存中。
1.3 BLV 加载到内存后,就在内存中建立RAM文件系统,并把控制权给RAM 文件系统,接着开始系
统初始化内核。BLV 包含的内容有: AIX 内核、RAMFS、基本用户设备。初始化内核之后执行 init 程序,
其进程号(PID)为1,并执行 rc.boot 1。
1.4 rc.boot 1 详细执行过程:
rc.boot其实是一个 普通的Shell脚本,执行 rc.boot 1 时,首先执行命令: restbase,作用主要是将简化
版的 ODM加载到 RAMFS,如果这个过程执行失败,LED显示屏将会显示548错误。然后执行 cfgmgr -f
(first) 读取ODM中的Config_Rules类,属性 phase 等于 1 的全被认为是基本设备,该步骤主要为激活
rootvg做前提准备。紧接着执行bootinfo -b 来检测最后一次引导设备,如果成功,LED显示屏显示511,
到此,阶段1 执行完成。
2. 阶段二:
2.1 rc.boot 1 执行完成后,由 RAMFS 中的 init 进程再次执行 rc.boot 2。
2.2 在执行rc.boot 2过程中,首先调用 ipl_varyon 命令来激活 rootvg , 如要激活失败,LED显示屏将
会显示552/554/556其中之一。
2.3 激活rootvg后,执行 fsck -fp /dev/hd4, 如果未发现问题,就将/dev/hd4 挂载到 RAMFS 中的临
时挂载点:/mnt. 否则失败,LED显示屏将会显示555/557。
2.4 安装 /usr 和 /var 文件系统,一旦 /var 文件系统安装完成,就执行 copycore 命令把默认的dump
设备(/dev/hd6)最后的dump信息复制到默认的临时目录 /var/adm/ras。复制完成后马上卸载 /var 文件系
统。
2.5 激活位于 rootvg 中的页面空间(hd6),此任务由 swapon 命令来完成。注意:AIX 的页面空间就是
LINUX 下的Swap 空间。
2.6 使用 mergedev 命令把 RAMFS 中的 /dev 复制到硬盘文件系统上,然后再用
cp Cu* /mnt/etc/objrepos 把 RAMFS 中用户化的 ODM信息复制到磁盘上。
2.7 卸载 RAMFS 中的 /usr 文件系统和磁盘中的根文件系统(/dev/hd4),然后在 RAMFS 中的根文件
系统所在的安装点永久性的安装 rootvg(磁盘上的)根文件系统,使用 newroot 命令实现从RAMFS 根文件
系统到 rootvg 根文件系统的切换。一旦 rootvg 根文件系统安装完成后,/usr和/var文件系统就都可以被
安装在磁盘上的挂载点。
2.8 所有文件系统都挂载后,此时系统还未提供操作控制台,而是还要将引导信息写入到 alog 中,以
便将来查看引导信息或错误信息。复制完后,退出rc.boot程序,并将控制权交给磁盘中 rootvg 中的 init
进程,且释放 RAMFS。
2.9 rootvg的 init 进程掌握控制权后,它将读取 /etc/inittab 文件,并查找默认的启动级别,启动级别
位于init: 和 :initdefault之间。需要注意的是如果这个文件不存在,就会进入到单用户模式,也就是维护模式。
另外, /etc/inittab 文件每隔 1 分钟执行一次,如果发现上次检测之后有增加或修改,就会执行增加或修改
命令。
3. 阶段三:
3.1 在阶段二结束后,init 进程在 /etc/inittab 文件中如果找到 brc的标识符,就开始执行阶段三,也
就是第三次执行rc.boot。即 rc.boot 3。
3.2 运行rc.boot 3 后,首先安装/tmp 文件系统,紧接着同步 rootvg。如果为正常引导(多用户引
导),就执行 cfgmgr -p2,如果为维护模式引导,就执行 cfgmgr -p3。 cfgmgr 主要读取 ODM 中
Config_Rules类,配置属性 phase 为2 或 3的设备,也就是剩下的所有设备(属性phase等于1的设备为
基本设备)。
3.3 执行 cfgcon 配置终端控制台,例如TTY或磁盘上的某一个文件。
3.4 执行 savebase 将根文件系统上的 ODM 信息保存到引导逻辑卷(BLV)中。然后退出 rc.boot 3,
接着由 init 进程执行/etc/inittab其它进程。/etc/inittab 执行完后,AIX系统到此已经完成启动,此时
用户可以登录熟悉的 AIX 欢迎界面。
收起