Chinaunix

标题: IBM AIX V5.3 系统管理(Test 222)认证指南: 第 1 部分:启动过程(下) [打印本页]

作者: 落魄剑客    时间: 2008-11-03 17:45
标题: IBM AIX V5.3 系统管理(Test 222)认证指南: 第 1 部分:启动过程(下)


文档选项



[/url]







未显示需要 JavaScript 的文档选项
级别: 中级
[url=http://www.ibm.com/developerworks/cn/aix/redbooks/test222/boot-process/test222-bootprocess2.html#author]Shiv Dutta

, 技术顾问, IBM 
2007 年 11 月 15 日
作为一名系统管理员,您应该对启动过程具有全面的认识。对于解决影响系统正常启动的问题来说,这种认识是非常有帮助的。这些问题可能涉及软件和硬件两方面。我们还建议您应该熟悉您的系统的硬件配置。文章是节选自 IBM 的红皮书《IBM Certification Study Guide eServer p5 and pSeries Administration and Support for AIX 5L Version 5.3 》。

您可以通过访问“IBM AIX 认证专题”来了解其它的相关认证文章:

如何对无响应的启动过程进行恢复
如果您的系统无法启动,AIX 5L 提供了一些工具和方法以便对挂起的启动过程进行恢复。
这个部分将介绍可能导致系统在启动过程中出现挂起的情况。
bootlist 命令
您可以更改系统查找相关设备(以获得其启动代码)的顺序。bootlist 命令显示并改变可用于系统的启动设备列表。该命令的一般语法规则如下所示:
bootlist [ { -m Mode } [ -r ] [  -o  ] [ [ -i ] | [ [ -f File ]
[ Device [ Attr=Value ... ] ... ] ] ]
表 1 中给出了 bootlist 命令最常使用的一些标志。
标志
说明
-m mode
指定所要显示或改变的启动列表。模式变量的可能取值为 normal、service、both 或者 prevboot。
-f File
表示从指定的文件名读取设备信息。
-i
表示由 -m 标志指定的设备列表应该失效。
-o
表示执行了任何指定的改变之后,将显示指定的启动列表。输出是设备名称列表。
-r
表示执行了任何指定的改变之后,将显示指定的启动列表。输出取决于硬件平台。
bootlist 命令允许用户显示和改变要启动的系统中可能的启动设备的列表。这个命令支持下面的更新:

对这些启动列表的支持,可能随着平台的不同而不同,并且在某些平台中可能没有启动列表。当系统启动时,它将在启动列表中搜索启动设备,系统将选择列表中的第一个设备,并确定它是否可以启动。如果在第一个设备上没有检测到启动文件系统,该系统将转移至列表中的下一个设备。因此,设备在设备列表中的排序是非常重要的。
要显示启动列表(AIX Version 4.2 或更高版本),可以使用下面的命令:
# bootlist -m normal -o
cd0
hdisk0 blv=hd5
rmt0
如果您希望对正常的启动列表进行更改,并且删除 rmt0(举例来说),那么可以使用下面的命令:
# bootlist -m normal cd0 hdisk0
或者创建一个包含 cd0 hdisk0 的列表的文件(由空格进行分隔,或者每个设备占一行),并且使用下面的命令:
# bootlist -m normal -f filename
这将更改常规启动列表,以表示在启动系统时,它将首先尝试从 cd0 进行启动。如果在 cd0 中无法找到启动镜像,那么它将转向 hdisk0。如果搜索失败,那么它将显示一个 LED 代码,并等待用户进行干预。它不会继续搜索 rmt0。
在更改了启动列表之后,对其进行验证,如下所示:
# bootlist -m normal -o
hdisk0 blv=hd5
cd0
对这些启动列表的支持可能随着平台的不同而不同,并且在某些平台中可能没有启动列表。当搜索启动设备时,系统将选择列表中的第一个设备,并确定它是否可以启动。如果在第一个设备中没有检测到 BLV,那么系统将转移至列表中的下一个设备。因此,设备在设备列表中的排序是非常重要的。
启动设备选择
表 2 中提供了可以在您的启动列表中使用的命名规范。向启动列表所添加的每个设备都必须处于 AVAILABLE 状态。否则,bootlist 命令将失败,并且您将碰到与以下所示类似的错误:
0514-210 bootlist: Device xxxxx is not in the AVAILABLE state
表 2
设备
说明
hdiskxx
物理卷设备逻辑名
cdxx
SCSI 和 IDE CD-ROM 设备逻辑名
rmtxx
磁带设备逻辑名
entxx
以太网适配器逻辑名
tokxx
令牌环适配器逻辑名
访问无法启动的系统
如果您无法启动系统,那么第一步是访问该系统,并查看导致该故障的可能原因。这个过程允许您获得系统提示符,以便您可以尝试从系统恢复数据,或者执行纠正性的操作以使得系统能够从硬盘启动。
要访问该系统,需要执行以下步骤:

常见的启动 LED 代码
在系统初始化过程中,提供了操作员面板显示屏的服务器将显示一些 LED 代码,这些代码可以提供有关启动过程状态的信息。一些代码是指示服务器运行到启动过程哪一步的检查点。对于不同的服务器类型,这些代码也有所不同。
例如,在一个提供了 4 个字符的显示屏的服务器上,E1F1 表示系统定义的控制台已经激活,而在提供了 3 个字符的显示屏的服务器上,则使用 FF1 进行表示。Fxx(其中 xx 为十六进制数字)格式的代码一般是与固件有关的。
其他代码用来表示所检测到的错误。表 3 中给出了一些最常见的 LED 代码,它们用于表示启动问题,以及如何解决它们以使得您的系统能够再次启动并运行。
表 3
LED 201 - 启动镜像损坏
1. 按照
“访问无法启动的系统”
中所描述的过程来访问您的 rootvg。
2. 检查 / and /tmp 文件系统。如果它们几乎满了,那么创建更多的空间。
3. 使用 lslv -m hd5 命令来确定启动磁盘。
4. 使用 bosboot -a -d /dev/hdiskn 重建启动镜像,其中 n 是包含启动逻辑卷的磁盘的编号。
5. 在错误日志中检查 CHECKSTOP 错误。如果找到了这样的错误,它很可能表示硬件的故障。
6. 关闭并重新启动系统。
LED 223-229 - 无效的启动列表
1. 将键模式切换到 Service(或者 F5,对于那些没有键盘锁的系统),并打开计算机的电源。
2. 如果显示正常继续,则将键模式切换到 Normal 并继续第3步。如果没有得到提示,则进入第 4 步。
3. 当出现登录提示符时,登录并按照
“bootlist 命令”
中所描述的过程来更改启动列表。然后继续执行第 7 步。
4. 按照
“访问无法启动的系统”
中所描述的过程来访问您的 rootvg,并继续执行第 5 步。
5. 使用 lslv -m hd5 命令来确定启动磁盘。
6. 按照
“bootlist 命令”
中所描述的过程来更改启动列表。
7. 关闭并重新启动您的系统。
LED 551、555 和 557 - 损坏的文件系统、损坏的 JFS 日志等等
1. 在装入任何文件系统(“Volume Group Information”屏幕中的选项 2)之前,按照
“访问无法启动的系统”
中所描述的过程来访问 rootvg。
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 是包含启动逻辑卷的磁盘的编号。
LED 552、554 和 556 - 损坏的超级块和损坏的自定义 ODM 数据库
1. 重复 LED 551、555 和 557 中的步骤 1 到 2。
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. 关闭系统,并重新启动。
运行级别
在操作系统中执行维护任务,或在更改运行级别之前,您应该深入地研究各种运行级别。运行级别是只允许选定的一组进程存在的一种软件配置。
确定系统运行级别
这个部分描述如何确定系统当前所处的运行级别,以及如何显示以前的运行级别的历史。表 4 中列出了系统可用的运行级别。
表 4
运行级别
说明
0-1
保留为操作系统将来使用。
2
包含多用户环境下的所有终端进程和守护进程。这是缺省的运行级别。
3-9
可以根据用户的首选项进行定义。
a、b、c、h
这些并不是真正的运行级别;它们与运行级别的不同之处在于,init 命令无法请求整个系统进入这些运行级别。请参见
上半部分
的“/etc/inittab 文件”,以获得更详细的信息。
S、s、M、m
维护模式。当系统从其他运行级别进入维护模式时,只有系统控制台可以作为终端使用。
确定当前运行级别
在命令行中,输入下面的命令:
# cat /etc/.init.state  
2                       
#   
系统将显示一个数字,即当前运行级别。
显示以前的运行级别的历史
使用 fwtmp 命令,您可以显示以前的运行级别的历史,如下所示:
1. 以 root 用户的身份登录。 2. 输入下面的命令,系统将显示与下面所示类似的信息:
# /usr/lib/acct/fwtmp
更改系统运行级别
系当系统第一次启动时,它会进入 /etc/inittab 文件中的 initdefault 项所定义的缺省运行级别。系统会一直在该运行级别中运行,直到它收到一个更改运行级别的信号。您可以执行 lsitab 命令,以查看您的系统的缺省运行级别:
# lsitab init
init:2:initdefault:
#
要更改运行级别,请执行下面的过程:

telinit 命令
通过接受单个字符的参数,并发送信号以告知 init 进程执行适当的动作,telinit 命令可以直接控制 init 进程(进程 ID 为 1)的操作。通常情况下,telinit 命令将使系统进入到指定的运行级别。telinit 命令可以向 init 进程传递下列参数作为指令:
例如,要进入到维护模式,可以输入:
# telinit M

注意:您还可以使用 shutdown -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.* 文件的介绍
rc 文件作为初始化过程中的一部分加以执行;它们为系统做好配置的准备,并做好运行的准备。
rc.boot 文件
/sbin/rc.boot 文件是一个可以由简单的 Shell init和标准 init 命令调用的、用来使系统启动的脚本。它可以控制计算机的启动进程。当系统启动时,在每个启动阶段都会调用 /sbin/rc.boot 文件,每次都使用一个不同的参数。
根据启动设备的类型,rc.boot 文件对设备进行配置,并调用合适的应用程序。合适的应用程序包括:


注意:rc.boot 程序只能由 init 进程调用;在一个正在运行的系统上执行 rc.boot 脚本会产生不可预知的结果。
/etc/rc 文件
/etc/rc 文件执行正常的启动初始化;在 /etc/inittab 文件中,它的条目位于 rc.boot 条目之后。init 命令将读取 /etc/inittab 文件,并为 /etc/rc 文件创建一个进程。对于不同的安装,/etc/rc 文件的内容也有所不同。如果所有必需的操作都已成功完成,那么文件会出现一个返回码 0,以便允许 init 命令启动登录程序来完成正常的初始化和启动。
/etc/rc 文件可以完成许多启动功能,如:


注意:/、/usr、/var 和 /tmp 文件系统会在启动过程(阶段 2)中自动地装入。/etc/rc 文件在运行 mount all 命令时不会尝试再次装入这些文件系统。
rc.net 文件
/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 库中指定的属性值。
rc.tcpip 文件
/etc/rc.tcpip 文件是一个 Shell 脚本,当它执行时,使用 SRC 命令初始化所选择的守护进程。在系统每次重新启动时,rc.tcpip 脚本文件都会自动地执行。它也可以在任何时间从命令行加以执行。
大多数守护进程可以由 TCP/IP 特定的 rc.tcpip 文件进行初始化。这些守护进程包括:

注意:在一台主机上同时运行 routed 和 gated 会引起不可预知的结果。
还有一些特定于基本操作系统或其他应用程序的守护进程,也可以在 rc.tcpip 文件中启动。这些守护进程包括:

以下的示例可以作为参考:


注意:要在启动时禁用一个进程,可以在启动该进程的那一行前面添加一个号 (#)。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5447/showart_1358534.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2