AIX 53 系统启动过程详解

上传人:公**** 文档编号:509044983 上传时间:2023-12-19 格式:DOCX 页数:21 大小:49.58KB
返回 下载 相关 举报
AIX 53 系统启动过程详解_第1页
第1页 / 共21页
AIX 53 系统启动过程详解_第2页
第2页 / 共21页
AIX 53 系统启动过程详解_第3页
第3页 / 共21页
AIX 53 系统启动过程详解_第4页
第4页 / 共21页
AIX 53 系统启动过程详解_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《AIX 53 系统启动过程详解》由会员分享,可在线阅读,更多相关《AIX 53 系统启动过程详解(21页珍藏版)》请在金锄头文库上搜索。

1、AIX 5.3 系统启动过程详解一. 启动过程启动过程包含下面的一些步骤:1.1启动一个系统的初始步骤是上电自检(Power On Self Tes t, POST)。其目的是验证基本硬件是否处于 正常的工作状态。同时初始化内存、键盘、通信,以及音频设备。您可以看到在屏幕上显示了所有的这些设备。在 这个步骤中,您可以按下功能键,以选择不同的启动列表。这个阶段中所显示的 LED 值是模型特定的。硬件和软 件方面的问题都可能使得系统无法启动。注意:基于MCI体系结构的旧系统在这个步骤之前还将执行一个附加的步骤,即所谓的内建自检(Builtin Self Tes t, BIST)。对于基于PCI体系

2、结构的系统,不再需要执行这个步骤。1.2系统只读存储器(SystemReadOnlyStorage, ROS)对于每种类型的系统来说都是特定的。它是启动AIX 5L Version 5.3所必需的,但是它并不为启动工作构建所需的数据结构。它将定位和加载引导(bootstrap)代码。 系统 ROS 中包含通用的启动信息,并且是独立于操作系统的。1.3软件ROS (也称为引导程序)构成了 IPL控制块,它与AIX 5L Version 5.3是兼容的,用于接收控 制和构建 AIX 5L 的特定启动信息。将在内存中定位一种特殊的文件系统,并创建一种名为 RAMFS 的文件系统。 然后,软件ROS定

3、位、加载、并将控制权交给AIX5L启动逻辑卷(BLV)。软件ROS是基于计算机类型的AIX 5L信 息,并且负责完成计算机准备工作,以使得它能够启动 AIX 5L 内核。1.4可以从/usr/lib/boot目录中获得BLV中所包含的文件的完整列表。其中最重要的组件包含以下内容:( 1) AIX 5L 内核(2) 在启动过程中调用的启动命令,如 bootinfo 和 cfgmgr(3) ODM 的一个简化的版本。在 hd4 可供使用之前,需要对许多设备进行配置,所以它们的相应 方法必须存储在 BLV 中。这些设备都被标记为预定义设备 (PdDv) 中的基础设备。( 4) rc.boot 脚本1

4、.5加载AIX 5L内核,并接管控制权。系统将在LED面板上显示0299。前面所有的代码都是与硬件相 关的。通过配置设备和启动 init 进程,内核将完成启动过程。在这个阶段中所显示的 LED 代码都是通用的 AIX 5L 代码。1.6到此为止,系统对硬件进行了检测、找到了 BLV、创建了 RAMFS,并且从BLV中启动了 init进程。 但是尚未激活rootvg。从现在开始,将调用三次rc.boot脚本,并且每次都传递不同的参数。1.6.1 启动阶段 1在这个阶段中,将执行下面的步骤:(1) 从 RAMFS 启动的 init 进程将执行启动脚本 rc.boot 1。如果出于某种原因, ini

5、t 进程执行失败那么将在 LED 显示屏上显示代码 c06。(2) 在这个阶段中,将调用restbase命令,以便将ODM的部分镜像从BLV复制到RAMFS。如果这个操 作成功完成,那么 LED 显示屏将显示 510;否则,将显示 LED 代码 548。( 3)在执行了该操作之后, cfgmgr -f 命令将从简化的 ODM 中读取 Config_Rules 类。在这个类中,将 属性 phase=1 的设备认为是基础设备。基础设备是访问 rootvg 所需的所有设备。例如,如果 rootvg 位于某块 磁盘中,那么必须对从主板到磁盘之间的所有设备进行初始化。调用相应的方法,以便能够在启动阶段

6、2 中激 活 rootvg。(4) 在启动阶段 1 结束后,将调用 bootinfo-b 命令以确定最后的启动设备。在这个阶段中, LED 将显 示 511。1.6.2 启动阶段 2在启动阶段 2 中,向 rc.boot 脚本传递的参数为 2。在这个阶段中,将执行下面的这些步骤:(1) 可以使用 varyonvg 命令(名为 ipl_varyon 命令)的特殊版本来激活 rootvg 卷组。如果这个命令 执行成功,那么系统将显示 517;否则,将显示下面 LED 代码中的某一个:552、554、或者 556,并且停止启动 过程。(2) 使用fsck -f命令来检查根文件系统hd4。该操作将验证

7、在上一次关机之前是否已经干净地卸载了 这个文件系统。如果这个命令执行失败,那么系统将显示代码 555。(3) 将根文件系统(/dev/hd4)装入到RAMFS中的临时装入点(/mnt)。如果这个操作执行失败,那么 在 LED 显示屏中将显示 557。(4使用fsck -f命令检查/usr文件系统,然后进行装入。如果这个操作执行失败,那么LED将显示518。(5) 使用 fsck-f 命令检查 /var 文件系统,然后进行装入。使用 copycore 命令检查是否发生了转储。 如果发生了转储,那么从缺省转储设备/dev/hd6复制到缺省复制目录/var/adm/ras。然后,卸载/var。(6)

8、 激活 rootvg 的主分页空间 /dev/hd6。(7) 调用 mergedev 进程,并将 RAM 文件系统的所有 /dev 文件复制到磁盘。(8) 将 RAM 文件系统中所有自定义的 ODM 文件复制到磁盘。对于 hd4 和 hd5 中的两个 ODM 版本,现 在进行同步。(9) 最后,将rootvg (磁盘)中的根文件系统装入到RAMFS的根文件系统。rootvg文件系统的装入点 已变得可用。现在,再次将 rootvg 的 /var 和 /usr 文件系统装入到它们的正常装入点。在这个阶段中,不能使用控制台,所以所有的启动消息都将复制到 alog。 alog 命令可以对日志进行维护和

9、管理。1.6.3 启动阶段 3在阶段2完成之后,激活了 rootvg,并将执行下面的步骤:1) 启动 /etc/init 进程。它将读取 /etc/inittab 文件,并使用参数 3 调用 rc.boot。2)装入 /tmp 文件系统。(3)通过调用 syncvg 命令(将该命令启动作为一个后台进程)对 rootvg 进行同步。因此,将对 rootvg 中 所有过时的分区进行更新。在这个阶段中,将显示 LED 代码 553。(4)在这个阶段中,将调用 cfgmgr 命令;如果系统以正常模式进行启动,那么将使用选项 -p2 来调 用cfgmgr命令;如果系统以服务模式进行启动,那么将使用选项-

10、p3来调用cfgmgr命令。cfgmgr命令将 从 ODM 读取 Config_rules 文件,并且调用与 phase=2 或者 phase=3 相对应的所有方法。所有其他非基础设备 的设备,并不在这里进行配置。(4)接下来,通过调用 cfgcon 命令对控制台进行配置。在配置了控制台之后,如果没有设置 STDOUT 重 定向,那么启动消息将发送到控制台。然而,可以在 /var/adm/ras/conslog 中找到所有遗漏的消息。此时,可能 显示的 LED 代码包括:1)c31:控制台尚未配置。提供相应的指令以选择控制台。2)c32:控制台是LFT终端。3)c33:控制台为TTY。4)c3

11、4:控制台为磁盘中的文件。(5)最后,使用 savebase 命令对 BLV 中的 ODM 与 / (root) 文件系统中的 ODM 进行同步。(6)启动 syncd 守护进程和 errdemon。(7)LED 显示屏将关闭。(8)如果文件 /etc/nologin 存在,则将其删除。(9)如果 CuDv 中有设备被标记为缺失,那么将在控制台中显示一条消息。(10)消息“System initialization completed发送到控制台。rc.boot执行完成。进程init将继续 处理 /etc/inittab 中的下一条命令。二. 系统初始化在系统启动过程中,在预初始化过程中装入根

12、文件系统之后,将发生下面这些事件:(1)作为启动过程中的最后一个步骤,运行 init 命令。(2)init 命令尝试读取 /etc/inittab 文件。(3)如果 /etc/inittab 文件存在,那么 init 命令将尝试在 /etc/inittab 文件中查找 initdefault 条 目。1)如果 initdefault 条目存在,那么 init 命令使用指定的运行级别作为初始的系统运行级别。2)如果 initdefault 条目不存在,那么 init 命令将请求用户从系统控制 台 (/dev/console) 输入一个运行级别。3)如果用户输入S、s、M、或者m运行级别,那么in

13、it命令将进入维护运行级别。只 有这些运行级别不需要经过正确格式化的 /etc/inittab 文件。(4)如果 /etc/inittab 文件不存在,那么 init 命令在缺省情况下将使系统进入维护运行级别。(5)init 命令每隔 60 秒将再次读取 /etc/inittab 文件。如果在 init 命令上一次读 取 /etc/inittab 文件之后,其中的内容发生了更改,那么将执行 /etc/inittab 文件中的新命令。2.1 /etc/inittab 文件/etc/inittab 文件用于控制初始化过程。/etc/inittab 文件提供了相应的脚本,以使得 init 命令的角色

14、成为通用的进程调度器。 init 命令的进 程调度活动中的主要进程是 /etc/getty 线路进程,它将启动单独终端线路。通常由 init 命令进行调度的其他进 程包括守护进程和 Shell。/etc/inittab 文件由一些与位置无关的条目组成,它们的格式如下所示Identifier:RunLevel:Action:Command每个条目之间由一个换行符进行分隔。换行符前面加上一个反斜杠 (/) 表示继续该条目。在 /etc/inittab 文件中,对于条目的数目没有任何限制(但不能超过最大的条目大小)。最大的条目大小 为 1024 个字符。条目字段包括:(1)Identifier,由一

15、到十四个字符组成的字段,唯一地标识一个对象。(2)RunLevel,可以对该条目进行处理的运行级别。 运行级别具有下面的属性:1)运行级别有效地对应于系统中的进程配置。2)可以为每个由 init 命令启动的进程分配一个或者多个运行级别(该进程可以存在于其中)。3)运行级别使用数字 0 到 9 进行表示。例如,如果系统处于运行级别 1,那么只有那些在运行 级别字段中包含 1 的条目才会启动。4)当您请求 init 命令更改运行级别时,在运行级别字段中不包含匹配条目(对于目标运行级别) 的所有进程都将接收到一个警告信号(SIGTERM)。在使用删除信号(SIGKILL)强行结束这些进程之前,有20

16、秒 钟的过渡期。5)通过使用从 0 到 9 的任意组合,可以选择多个运行级别,从而在运行级别字段中为一个进程 定义多个运行级别。如果没有指定运行级别,那么就假定该进程在所有的运行级别中都是有效的。6)在运行级别字段中,还可能出现其他四种取值,即使它们并不是真正的运行级别:a、b、c和h。 仅当使用 telinit 命令请求它们运行时(无论系统当前运行级别如何),才会处理那些运行级别字段中包含这些 字符的条目。它们与运行级别的不同之处在于,init命令不可能进入到运行级别a、b、c或者h。另外,任何这 些进程的执行请求都不会更改当前运行级别。而且,在 init 命令更改级别时,不会终止以 a、 b 或者 c 命令开 头的进程。只有在下面三种情况下才会

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号