IBM AIX V5.3 系统管理(Test 222)认证指南: 第 1 部分:启动过程(下)
作为一名系统管理员,您应该对启动过程具有全面的认识。对于解决影响系统正常启动的问题来说,这种认识是非常有帮助的。这些问题可能涉及软件和硬件两方面。我们还建议您应该熟悉您的系统的硬件配置。文章是节选自 IBM 的红皮书《IBM Certification Study Guide eServer p5 and pSeries Administration and Support for AIX 5L Version 5.3 》。
![]() |
“访问无法启动的系统”中所描述的过程来访问您的 rootvg。
2. 检查 / and /tmp 文件系统。如果它们几乎满了,那么创建更多的空间。
3. 使用 lslv -m hd5 命令来确定启动磁盘。
4. 使用 bosboot -a -d /dev/hdiskn 重建启动镜像,其中 n 是包含启动逻辑卷的磁盘的编号。
5. 在错误日志中检查 CHECKSTOP 错误。如果找到了这样的错误,它很可能表示硬件的故障。
6. 关闭并重新启动系统。
2. 如果显示正常继续,则将键模式切换到 Normal 并继续第3步。如果没有得到提示,则进入第 4 步。
3. 当出现登录提示符时,登录并按照“bootlist 命令”中所描述的过程来更改启动列表。然后继续执行第 7 步。
4. 按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg,并继续执行第 5 步。
5. 使用 lslv -m hd5 命令来确定启动磁盘。
6. 按照“bootlist 命令”中所描述的过程来更改启动列表。
7. 关闭并重新启动您的系统。
2. 验证并修改文件系统,如下所示:
fsck -y /dev/hd1
fsck -y /dev/hd2
fsck -y /dev/hd3
fsck -y /dev/hd4
fsck -y /dev/hd9var
3. 使用如下命令再次格式化 JFS 日志:
/usr/sbin/logform /dev/hd8
4. 使用 lslv -m hd5 获得启动磁盘。
5. 使用下面的命令重新创建启动镜像:
bosboot -a -d /dev/hdiskn
其中,n 是包含启动逻辑卷的磁盘的编号。
2. 如果 fsck 显示 block 8 被破坏,那么说明文件系统的超级块遭到破坏,并且需要对其进行修复。输入下面的命令:
dd count=1 bs=4k skip=31 seek=1 if=/dev/hdn of=/dev/hdn
其中,n 是该文件系统的编号。
3. 使用如下的命令重新构建 JFS 日志:
/usr/sbin/logform /dev/hd8
4. 如果这样做可以解决问题,那么就停止;否则,继续执行第 5 步。
5. 您的 ODM 数据库遭到破坏。重新启动您的系统,在“Volume Group Information”屏幕中,使用选项 2 按照“访问无法启动的系统”中所描述的过程来访问 rootvg。
6. 装入根文件系统和 usr 文件系统,如下所示:
mount /dev/hd4 /mnt
mount /usr
7. 将系统配置复制到备份目录:
mkdir /mnt/etc/objrepos/backup
cp /mnt/etc/objrepos/Cu* /mnt/etc/objrepos/backup
8. 复制 RAM 文件系统的配置,如下所示:
cp /etc/objrepos/Cu* /mnt/etc/objrepos
9. 使用 umount all 命令卸载所有的文件系统。
10. 使用 lslv -m hd5 命令来确定启动磁盘。
11. 使用下面的命令保存干净的 ODM 到启动逻辑卷:
savebase -d/dev/hdiskn
其中,n 是包含启动逻辑卷的磁盘的编号。
12. 重新启动,如果系统无法引导,则重新安装 BOS。
常见的启动 LED 和解决方案
| LED 553 - 损坏的 /etc/inittab 文件 |
|---|
| 1. 按照“访问无法启动的系统”中所描述的过程来访问所有已装入的文件系统的 rootvg。
2. 使用 df 命令,检查 /、/var 和 /tmp 中的空闲空间。 3. 检查 /etc/inittab 文件,如果存在一个空的 inittab 文件、inittab 文件缺失,或者在 inittab 文件中存在错误的条目,则纠正 inittab 问题。 4. 检查下列文件的问题: /etc/environment file /bin/sh /bin/bsh /etc/fsck /etc/profile /.profile 5. 关闭系统,并重新启动。 |
上半部分的“/etc/inittab 文件”,以获得更详细的信息。
在命令行中,输入下面的命令:
|
# cat /etc/.init.state 2 # |
系统将显示一个数字,即当前运行级别。
使用 fwtmp 命令,您可以显示以前的运行级别的历史,如下所示:
1. 以 root 用户的身份登录。 2. 输入下面的命令,系统将显示与下面所示类似的信息:
|
# /usr/lib/acct/fwtmp < /var/adm/wtmp |grep run-level run-level 2 1 0 0062 0123 1132072406 Tue Nov 15 10:33:26 CST 2005 run-level 2 1 0 0062 0123 1132075614 Tue Nov 15 11:26:54 CST 2005 run-level 2 1 0 0062 0123 1132092491 Tue Nov 15 16:08:11 CST 2005 run-level 2 1 0 0062 0123 1132094756 Tue Nov 15 16:45:56 CST 2005 |
系当系统第一次启动时,它会进入 /etc/inittab 文件中的 initdefault 项所定义的缺省运行级别。系统会一直在该运行级别中运行,直到它收到一个更改运行级别的信号。您可以执行 lsitab 命令,以查看您的系统的缺省运行级别:
|
# lsitab init init:2:initdefault: # |
要更改运行级别,请执行下面的过程:
|
# telinit M |
telinit 命令
通过接受单个字符的参数,并发送信号以告知 init 进程执行适当的动作,telinit 命令可以直接控制 init 进程(进程 ID 为 1)的操作。通常情况下,telinit 命令将使系统进入到指定的运行级别。telinit 命令可以向 init 进程传递下列参数作为指令:
|
# telinit M |
![]() |
|
运行级别脚本允许用户在更改运行级别时启动和停止所选择的应用程序。以 K 开头的脚本是停止脚本,以 S 开头的脚本是启动脚本。
这些脚本保存于它们所从属的运行级别的特定子目录中,每个子目录的格式为 rcn.d,其中 n 表示运行级别:
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/rc7.d
/etc/rc.d/rc8.d
/etc/rc.d/rc9.d
/etc/rc.d/rc 脚本将运行它在指定目录中发现的启动脚本,并在运行级别更改时执行该启动脚本。脚本将首先运行停止应用程序的脚本,然后运行启动应用程序的脚本。
rc 文件作为初始化过程中的一部分加以执行;它们为系统做好配置的准备,并做好运行的准备。
/sbin/rc.boot 文件是一个可以由简单的 Shell init和标准 init 命令调用的、用来使系统启动的脚本。它可以控制计算机的启动进程。当系统启动时,在每个启动阶段都会调用 /sbin/rc.boot 文件,每次都使用一个不同的参数。
根据启动设备的类型,rc.boot 文件对设备进行配置,并调用合适的应用程序。合适的应用程序包括:
![]() |
|
/etc/rc 文件执行正常的启动初始化;在 /etc/inittab 文件中,它的条目位于 rc.boot 条目之后。init 命令将读取 /etc/inittab 文件,并为 /etc/rc 文件创建一个进程。对于不同的安装,/etc/rc 文件的内容也有所不同。如果所有必需的操作都已成功完成,那么文件会出现一个返回码 0,以便允许 init 命令启动登录程序来完成正常的初始化和启动。
/etc/rc 文件可以完成许多启动功能,如:
![]() |
|
/etc/rc.net 文件是一个包含网络配置信息的 Shell 脚本。其中的一些节允许您启用网络接口和设置主机名、缺省网关以及当前主机的静态路由信息。这个文件可用于进行单步配置,作为单独配置主机所需的一组命令和文件的替代方法。
rc.net Shell 脚本在配置过程的第二阶段中通过配置管理器程序运行。如果 TCP/IP 已经安装,那么在配置过程的第二阶段完成,并且 init 命令启动了 SRC 之后,由 init 命令运行第二个脚本 rc.tcp。
应该显示该文件中的节,以便提示用户目前的运行状态。
如果在系统配置完成之后运行 cfgmgr 命令,/etc/rc.net Shell 脚本还可以由配置管理器程序 (cfgmgr) 运行。它经常在系统添加新设备后,在系统启动时运行。如果 cfgmgr 命令运行 rc.net,那么配置方法和 rc.net 文件本身都要检查网络设备是否已经处于可用状态。如果是,那么就不改变设备的属性值,以避免覆盖启动之后的任何配置更改。
如果在运行 /etc/rc.net 时没有调用 cfgmgr 命令,那么将设备属性重设为在 ODM 库中的属性值,而不管它当前的状态如何。这就允许系统配置恢复为 ODM 库中指定的属性值。
/etc/rc.tcpip 文件是一个 Shell 脚本,当它执行时,使用 SRC 命令初始化所选择的守护进程。在系统每次重新启动时,rc.tcpip 脚本文件都会自动地执行。它也可以在任何时间从命令行加以执行。
大多数守护进程可以由 TCP/IP 特定的 rc.tcpip 文件进行初始化。这些守护进程包括:
注意:在一台主机上同时运行 routed 和 gated 会引起不可预知的结果。
还有一些特定于基本操作系统或其他应用程序的守护进程,也可以在 rc.tcpip 文件中启动。这些守护进程包括:
以下的示例可以作为参考:
#启动 syslog 守护进程(用于错误和事件日志记录)
start /usr/sbin/syslogd "$src_running"
#启动 print 守护进程
start /usr/sbin/lpd "$src_running"
#启动 routing 守护进程(仅启动一个)
start /usr/sbin/routed "$src_running" -g
#start /usr/sbin/gated "$src_running"
![]() |
|