本文将介绍启动过程,以及您可能在系统初始化阶段碰到的一些常见问题。本文还介绍用于处理与启动过程相关联的基本要素的一些常见命令。本文是摘自 IBM 红皮书《IBM Certification Study Guide - pSeries AIX System Administration》。
本文中所使用的一些关键命令
下面给出了本章中所使用的一些重要命令的列表。
alog
用于维护和管理日志文件。有关更详细的信息,
cfgmgr
配置设备,并有选择地将设备软件安装到系统中。
last
显示在 /var/adm/wtmp 文件中仍保存了相关条目的所有登录和注销操作。
bootlist
显示和更改系统中可用的启动设备的列表。
uptime
显示系统已经运行了多长时间。
mpcfg
允许具有 root 权限的用户管理服务信息。
shutdown
用于关闭系统。
启动过程
在启动过程中,系统将检测硬件、加载和运行操作系统,并配置设备。要启动操作系统,需要下列资源:
- 可以在开启和重置计算机后进行加载的启动映像。
- 可以访问根文件系统和 /usr 文件系统。
系统的启动类型可以分为三种:
开启计算机进行一般操作,钥匙处于“常规”位置。
在没有钥匙锁定的、基于 PCI 的系统中,这是缺省的启动方式。
通过网络,以远程的方式启动一个无盘或者无数据的工作站。开启计算机进行一般操作,钥匙处于“常规”位置。
通过一个或多个的远程文件服务器,为无盘或无数据的工作站提供启动时所需的文件和程序。
从硬盘、网络、磁带、或者 CD-ROM
启动计算机,钥匙处于“服务”位置。这种情况也称为维护模式。在维护模式中,系统管理员可以执行各种任务,如安装新的、或者更新的软件,并运行诊断检查。
在硬盘启动过程中,将在本地磁盘上找到安装操作系统时所创建的启动映像。在启动过程中,系统将对计算机中所有的设备进行配置,并初始化系统正常运行所需的其它基本软件(如逻辑卷管理器)。在这个过程的最后,将挂载了文件系统,并准备进行使用。
相同的基本需求可以应用于无盘网络客户端。它们也需要一个启动映像并访问操作系统文件树。无盘网络客户端没有任何本地的文件系统,必须通过远程访问的方式获得它们所有的信息。
系统将在其磁盘驱动器中查找启动过程所需的所有信息。
当打开电源启动系统(冷启动)、或者使用 reboot 或 shutdown
命令重新启动系统(热启动)时,在系统做好能够使用的准备之前,将会发生许多事件。可以将这些事件划分为下列几个阶段:
1. 只读存储 (ROS) 内核初始化阶段
在这个阶段,将检查主板的问题,ROS 初始化程序启动并搜索启动列表。一旦找到启动列表,则将启动映像读入到内存中,并且开始系统初始化。
2. 基础设备配置阶段
在这个阶段中,将通过 cfgmgr 命令的帮助,对所有的设备进行配置。
3. 系统启动阶段
在启动过程的这个阶段中,启用所有的逻辑卷、开始进行分页、并且处理 /etc/inittab 文件。
加电顺序、LED
以及声音信号
几种基于 MCA 的 RS/6000 系统提供了 LED 显示屏,以显示系统所经历的启动过程的阶段。如果出现了问题,您可以对相应的 LED
代码进行分析,并采取合适的操作来解决问题。
技巧:作为一名专业人员,记住这些错误代码将使您能够快速地找出导致各种关键系统问题的原因。因此,它是考试中需要记住的一个部分。
PCI RS/6000
系统使用声音和图形来显示启动过程中不同的阶段。例如,在系统加电后,当发现处理器被激活时将会发出一声蜂鸣声,当系统的内存检查完成时将显示 PowerPC
的徽标(或者显示文本),对于具有有效地址的所有设备,将显示设备的徽标。在设备徽标的显示结束后,如果系统 ROS 没有损坏,将再次发出一声蜂鸣声。
系统管理员可以使用这些提示信息来解决启动过程中可能碰到的各种问题。
一些有用的命令
在下面的部分中,将介绍一些用于管理系统启动、关闭,以及相关任务的命令。
使用 alog 命令
在许多情况下,您必须跟踪启动过程,并找出在启动过程中,系统是否出现了某些问题。AIX 为您提供了一种很好的工具- alog
命令,通过它的帮助来监视这些问题。
alog
命令可用于维护和管理日志。它可以读取标准输入、写入到标准输出,并将输出内容复制到一个大小固定的文件中。这个文件将用作循环日志。如果这个文件满了,那么新的条目将会覆盖现有的、最早的条目。
rc.boot 脚本显式地通过 alog 命令将启动信息重定向到文件
/var/adm/ras/bootlog。如果系统出现了问题,您可以将系统启动到单用户模式(维护模式),并通过 alog
命令访问这些日志,以了解系统在哪个阶段出现了故障。下面给出了 rc.boot 脚本中的一部分内容,以说明其中如何包含日志记录机制。
# Error Recovery if customized data is zero
[ -f /no_sbase ] && {
echo "rc.boot:executing savebase recovery procedures" >>/tmp/boot_log
X=`ODMDIR=/mnt/etc/objrepos odmshow CuDv |fgrep population`
count=`echo $X | cut -f2 -d‘ ‘`
[ $count -ne 0 ] && {
/usr/sbin/savebase -o /mnt/etc/objrepos
[ $? -ne 0 ] && loopled 0x546
mount /var# so that reboot can log echo "savebase recovery reboot" >>/tmp/boot_log cat /tmp/boot_log | alog -q -t boot reboot
}
}
|
alog 命令将处理那些在命令行中指定的日志文件、或者在 alog 配置数据库中定义的日志。
在表 1 中,列出了 alog 命令的一些最常用的标志及其描述。
表 1 alog 的命令标志
标志 |
描述 |
-f LogFile |
指定一个日志文件的名称。如果指定的 LogFile 不存在,就创建一个日志文件。如果 alog 命令无法写入 LogFile,那么它将写入到
/dev/null。 |
-L |
列出当前在 alog 配置数据库中定义的日志类型。如果与 -t LogType 标志一同使用 -L 标志,那么将列出指定的 LogType 的相关属性。
|
-o |
列出 LogFile 的内容;将 LogFile 的内容按顺序写入到标准输出。 |
-q |
将标准输入复制到 LogFile,但不写入到标准输出。 |
-t LogType |
指定 alog 配置数据库中定义的一个日志。alog 命令将从 alog 配置数据库中获得这个日志文件的名称和大小。
|
可以使用 SMIT 或者直接使用 alog 命令对 AIX 日志进行维护。alog 命令的一般用途如下所示:
显示一个日志文件的内容
要列出一个日志文件的内容,可以使用下面的命令:
将日志数据记录到一个指定的日志文件
通过使用下面的命令,您可以更改用于记录相关活动的缺省文件:
alog -f LogFile | [ [ -q ] [ -s Size ] ]
|
显示一个指定的日志类型的 verbosity 值
这个 verbosity 值指定了写入到日志的信息的深度。要显示一个日志的 verbosity 值,可以使用下面的命令:
更改一个指定的日志类型的属性
通过使用下面的命令,您可以使用不同的日志类型属性:
alog -C -t LogType [ -f LogFile ] [ -s Size ] [ -w Verbosity ]
|
显示一个指定的日志类型的当前属性
在您更改一个日志的属性之前,建议首先查看一下当前的属性值。要显示一个日志类型的当前属性,可以使用下面的命令:
要查看启动日志,您可以使用 SMIT 或者直接使用 alog 命令。
请按照“查看启动日志”中给出的顺序执行,以查看启动日志的内容。
查看启动日志
通过使用 SMIT 快速路径 smitty alog_show 并给出您希望查看的日志的名称、或者使用 alog 命令,您就可以查看启动日志。要使用
alog 命令查看一个日志,需要确定有哪些预定义的日志可供您使用。
使用 alog -L 命令,以查看 alog 数据库中定义的日志。在命令行中输入:
# alog -L
boot bosinst nim dumpsymp
要查看启动日志(保存了启动信息的日志),请输入:
# alog -o -t boot
---------
attempting to configure device ‘fda0‘
invoking /usr/lib/methods/cfgfda_isa -2 -l fda0
return code = 0
****************** stdout ***********
fd0
****************** no stderr ***********
-----------------------------------------------------------------------
invoking top level program -- "/etc/methods/starttty"
return code = 0
****************** no stdout ***********
****************** no stderr ***********
-----------------------------------------------------------------------
invoking top level program -- "/etc/methods/startsmt"
return code = 0
****************** no stdout ***********
****************** no stderr ***********
-----------------------------------------------------------------------
invoking top level program -- "/etc/methods/load_blockset_ext"
return code = 0
****************** no stdout ***********
****************** no stderr ***********
-----------------------------------------------------------------------
invoking top level program -- "/usr/lib/methods/defaio"
return code = 0
****************** no stdout ***********
****************** no stderr ***********
-----------------------------------------------------------------------
calling savebase return code = 0
****************** no stdout ***********
****************** no stderr ***********
Starting AIX Windows Desktop.....
Saving Base Customize Data to boot disk
Starting the sync daemon
Starting the error daemon
System initialization completed.
Starting Multi-user Initialization
Performing auto-varyon of Volume Groups
Activating all paging spaces swapon:Paging device /dev/hd6 activated.
/dev/rhd1 (/home):** Unmounted cleanly - Check suppressed
Performing all automatic mounts
Multi-user initialization completed
|
碰到的任何错误都将记录到这个文件中。然而,alog
文件没有并发控制;因此,如果多个进程试图同时写入相同的文件,那么该日志文件中的内容可能与所预料的不同。另外,它是一个循环文件;所以,当到达最大大小的时候,其中的内容将会被覆盖。
使用 cfgmgr 命令
在启动过程中,系统必须确定其可用的资源。例如,系统必须确定系统正在使用何种类型的总线、有哪些类型的设备连接到了该系统、rootvg
位于何处,等等。这些设备的配置将由 BOS 命令 cfgmgr 进行处理。cfgmgr 命令用于配置设备,并且有选择地将设备软件安装到系统中。
cfgmgr 命令的一般语法规则如下所示:
cfgmgr [ -f | -s | -p Phase ] [ -i Device ] [ -l Name ] [ -v ]
在表 2 中,列出了一些最常用的标志及其描述:
表 2 cfgmgr 的命令标志
标志 |
描述 |
-f |
指定 cfgmgr 命令运行阶段 1 配置规则。这个标志在运行时(系统启动之后)是无效的。 |
-i Device |
指定安装媒体的位置。 |
-l Name |
指定命名的设备,以便配置该设备及其子设备。 |
-p Phase |
指定 cfgmgr 命令运行的阶段。 |
-s |
指定 cfgmgr 命令按照阶段 2 配置规则执行。 |
-v |
指定详细输出。cfgmgr 命令将其所执行的操作的相关信息写入到标准输出。 |
要进行配置的设备由配置规则对象类(是设备配置数据库的一部分)控制。每条配置规则指定了三项内容:
- 要运行的可执行程序的完整路径名。
- 何时执行该程序(相对于其他规则)。
- 在哪个阶段运行该程序。
在系统启动的过程中,cfgmgr 命令将对使用该系统所需的所有设备进行配置。系统启动包含两个阶段。
开始阶段 1 之前,将会把内核装入到系统中并且对启动文件系统进行初始化。在这个阶段中,将调用 cfgmgr 命令,并使用 -f 标志将其指定为阶段
1。cfgmgr 命令将运行所有阶段 1 的配置规则,这将对基础设备进行配置。
在这个阶段中,将使用 -s 标志调用 cfgmgr 命令。
cfgmgr 命令可以识别配置规则的三个阶段:
- 阶段 1
- 阶段 2(正常启动的第二个启动阶段)
- 阶段 3(服务启动的第二个启动阶段)
通常,cfgmgr 命令将运行调用期间所指定的阶段的所有规则(例如,-f 标志表示阶段 1 规则)。然而,如果使用了 -l 标志,那么 cfgmgr
命令将仅对命名的设备及其子设备进行配置。
如果在调用 cfgmgr 命令时没有使用阶段选项(例如,没有使用 -f、-s、或者 -p 标志),那么该命令将运行阶段 2 规则。要运行阶段 3
规则,唯一的方法是使用 -p 标志。
如果使用 -i 标志调用 cfgmgr 命令,那么该命令将尝试自动地为每个刚检测到的设备安装设备软件。-i
标志的设备变量用于指定在何处可以找到安装媒体。安装媒体可以是硬件设备(如磁带或者磁盘驱动器)、一个包含安装映像的目录、或者安装映像文件本身。
重要:为了保护配置数据库,cfgmgr 命令是不可中断的。在其执行完成之前终止这个命令,将会对数据库造成破坏。
cfgmgr 命令仅对系统启动时加电的、并且可配置的设备进行配置,如 SCSI 驱动器或者 inittab 文件中定义的
TTY。如果在系统启动时有些设备并没有加电,那么在您显式地告诉系统对其进行配置之后,才能够在系统中使用这些设备。该命令的语法是:
cfgmgr -v
它将产生与 alog -o -t boot 命令类似的输出。
使用 last 命令
last 命令通常用于显示(以反向的时间顺序)/var/adm/wtmp
文件中所记录的、以前所有的登录和注销操作。当登录和注销发生时,/var/adm/wtmp 文件收集它们的记录并保存它们,直到记录由作为日常报告过程一部分的
acctcon1 和 acctcon2 命令处理。当计时的时间守护进程改变系统时间时,它将使用伪用户“date”在 wtmp
中记录条目。在更改前,将记录一个以“date |”开头的条目,在更改后,将记录一个以“date
{”开头的条目。这允许对跨越时间变换的登录进行准确的记帐。该命令的一般语法规则如下所示:
last [ -f FileName ] [ -Number ] [ Name ...] [ Terminal ... ]
在表 3 中,列出了 last 命令的一些最常用的标志。
表 3 last 的命令标志
标志 |
描述 |
-Number |
要在输出中显示的行数。 |
Name |
name 参数所指定的用户的登录和注销。 |
Terminal |
从由 Terminal 参数指定的终端进行的登录和注销。 |
例如,如果您希望了解用户 root 何时从控制台登录和注销,可以输入下面的命令:
# last root console root pts/3 dummy Oct 23 12:27 still logged in.
root lft0 Oct 22 11:45 still logged in.
root lft0 Oct 22 09:46 - 11:27 (01:40)
root pts/0 dummy Oct 21 11:36 - System is halted by system administrator. (00:24)
root pts/1 dummy.xyz.abc Aug 08 13:05 - System is halted by system administrator. (02:17)
root pts/0 dummy.xyz.abc Aug 08 12:43 - System is halted by system administrator. (02:39)
root lft0 Sep 18 15:41 - System halted abnormally. (14203+20:56)
root pts/1 dummy.xyz.abc Sep 18 15:00 - System halted abnormally. (00:31)
root pts/3 dummy.xyz.abc Sep 18 12:05 - System halted abnormally. (14245+02:51)
root pts/3 dummy.xyz.abc Sep 18 12:04 - 12:05 (00:00)
root pts/1 dummy.xyz.abc Sep 18 11:50 - 12:04 (00:14)
root pts/1 dummy.xyz.abc Sep 16 13:32 - 11:11 (1+21:38)
root pts/2 dummy.xyz.abc Sep 16 11:35 - System is halted by system administrator. (00:04)
root pts/0 dummy.xyz.abc Sep 04 15:27 - System is halted by system administrator. (00:15)
root lft0 Sep 04 15:27 - 15:40 (00:13)
wtmp begins Sep 04 15:11
|
last 命令还可以用于确定系统的上一次关闭发生在什么时候。该命令的语法如下所示:
# last shutdown shutdown pts/0 Oct 22 09:23
shutdown lft0 Oct 21 16:39
shutdown pts/0 Oct 21 13:41
shutdown lft0 Sep 25 14:43
shutdown pts/1 Aug 08 15:22
shutdown lft0 Sep 16 11:40
shutdown ~ Sep 08 14:47
|
使用 bootlist 命令
bootlist
命令允许您显示并改变可以启动系统的启动设备列表。在系统启动的时候,它会扫描列表中的设备并试图从查找到的第一个包含启动映像的设备进行启动。这个命令支持下面的内容:
常规启动列表:当系统以常规方式启动时,常规列表为此指定可能的启动设备。
服务启动列表:当系统以服务方式启动时,服务列表为此指定可能的启动设备。
前一启动设备条目:该条目指定了最近一次启动系统的设备。一些硬件平台可能试图在查找其他列表中的启动设备之前先从前一启动设备进行启动。
对这些启动列表的支持,可能随着平台的不同而不同。有些平台没有启动列表。当搜索启动设备时,系统将选择列表中的第一个设备,并确定它是否可以启动。如果在第一个设备上没有检测到启动文件系统,该系统将转移至列表中的下一个设备。因此,设备在设备列表中的排序是非常重要的。
该命令的一般语法规则如下所示:
bootlist [ { -m Mode } [ -r ] [ -o ] [ [ -i ] |
[ [ -f File ] [ Device [ Attr=Value ... ] ... ] ] ]
在表 4 中,列出了 bootlist 命令的一些最常用的标志。
表 4 bootlist 命令的标志
标志 |
描述 |
-m mode |
指定所要显示或改变的启动列表。mode 变量的可能的取值为 normal、service、both或者 prevboot。 |
-f File |
表示从指定的文件名读取设备信息。 |
-i |
表示由 -m 标志指定的设备列表应该失效。 |
-o |
使用 -m 标志显示启动列表。仅适用于 AIX Version 4.2 或更高版本。 |
-r |
表示执行了任何指定的改变之后,是否显示指定的启动列表。 |
要显示启动列表(AIX Version 4.2 或更高版本),可以使用下面的命令:
# bootlist -m normal -o fd0
cd0
hdisk0
|
如果您希望更改您的常规启动列表,可以使用下面的命令:
bootlist -m normal hdisk0 cd0
这将更改常规启动列表,以表示在启动系统时,它将首先尝试从 hdisk0 进行启动。如果无法在 hdisk0 中找到启动映像,它将搜索
CD-ROM。否则,它将指示系统提供一个 LED 错误代码,并等待用户的干预。
启动设备选择
表 5 中提供了可以在您的启动列表中使用的命名规范。向启动列表所添加的每个设备都必须处于 AVAILABLE 状态。否则,bootlist
命令将失败,并且您将碰到与以下所示类似的错误:
0514-210 bootlist:Device xxxxx is not in the AVAILABLE state
表 5 bootlist 命令的有效设备名
设备 |
描述 |
fdxx |
磁盘驱动器设备逻辑名 |
hdiskxx |
物理卷设备逻辑名 |
cdxx |
SCSI CD-ROM 设备逻辑名 |
rmtxx |
磁带设备逻辑名 |
entxx |
以太网适配器逻辑名 |
tokxx |
令牌环网适配器逻辑名 |
使用 uptime 命令
如果您怀疑系统重新启动过,那么您可以使用 uptime 命令来进行确认。uptime
命令可以显示系统已经运行了多长时间。该命令的一般语法规则如下所示:
# uptime
05:10PM up 6 days, 21:45, 13 users, load average 4.00, 3.00, 0.00
|
uptime 命令将显示当前时间、系统正常运行的时间、联机用户数目和平均负载。负载平均值是以前 5 分钟、10 分钟、15
分钟时间间隔中可运行的进程数量。uptime 命令的输出实质上就是 w 命令提供的标题行。
使用 mpcfg 命令
mpcfg 命令允许具有 root 权限的用户管理由服务支持和诊断标志(-S 和 -f 标志)、调制解调器和站点配置(-m
标志)以及远程支持电话号码(-p 标志)构成的服务信息。
mpcfg 命令只能用于具有 Micro Channel I/O 的多处理器系统。对于 IBM 系统,这包括 IBM 7012 型 G 系列、IBM
7013 型 J 系列、IBM 7015 型 R 系列。
技巧:有关 Micro Channel I/O 的讨论可能看上去有些过时,现在所有的 RS/6000 产品中都使用了 PCI 总线。但是许多较早的
Micro Channel 计算机仍然在使用,并且需要一些特定的技能。专业人员应该了解如何配置新的和旧的硬件。
该命令的一般语法规则,以及各种标志的含义如下所示:
显示服务信息
要显示服务信息,您可以使用:
mpcfg -d { -f -m -p -S}
例如,要找出何种状态具有您的诊断标志,可以使用 mpcfg 命令,如图 1 中所示。
图 1
显示诊断标志
更改服务信息
要更改服务信息,可以使用带下列标志组合的 mpcfg 命令:
mpcfg -c { -f | -m | -p -S -w} Index Value...
例如,如果您希望对系统进行快速 IPL 操作,您可以将诊断标志更改为如下所示的值:
mpcfg -cf 11 1
这个命令将搜索索引(请参见的图 1),并将第 11 项的值 (Fast IPL) 更改为
1。当系统下一次启动时,系统将跳过各种硬件测试,并且启动时间比正常情况的启动时间要短。
保存或者恢复服务信息
要存储有关标志的信息,可以按照下面的语法使用 mpcfg 命令:
mpcfg { -r | -s }
在表 6 中,列出了 mpcfg 命令的一些最常用的命令标志
标志 |
描述 |
-c |
更改服务信息的值。要修改的值首先由标志 -f、-m、-p 或 -S 来标识,然后由该类别中它们的索引(Index 参数)来标识。 |
-d |
根据命令中设置的 -f、-m、-p 和 -S 标志来显示服务信息的值。将显示这些值,以及与它们对应的索引和名称。 |
-s |
将服务信息保存到 /etc/lpp/diagnostics/data/bump 文件中。 |
-f |
表示操作(显示或更改)将应用于诊断标志。 |
-m |
表示操作(显示或更改)将应用于调制解调器和站点配置。 |
-p |
表示操作(显示或更改)将应用于远程支持电话号码。 |
-S |
表示操作(显示或更改)将应用于服务支持标志。 |
-w |
表示更改将应用于密码。 |
使用 shutdown 命令
系统关闭由一个 Shell 脚本控制,该脚本可以正确地使得多用户的系统关闭或者重新启动。不正确的关闭可能会对系统的完整性产生影响。
shutdown 命令的一般语法规则如下所示:
shutdown [ -d ] [ -F ] [ -h ] [ -i ] [ -k ] [ -m ] [ -p ] [ -r ]
[ -t mmddHHMM [ yy ] ] [ -v ] [ +Time [ Message ] ]
在表 7 中,列出了 shutdown 命令的一些常用标志。
表 7 shutdown 的命令标志
标志 |
描述 |
-d |
将系统关闭,从分布式方式转换到多用户方式。 |
-F |
执行快速关闭,即忽略发送到其他用户的消息并尽可能快速地关闭系统。 |
-h |
完全终止操作系统;和 -v 标志一样。 |
-i |
指定交互方式。显示交互式消息以在关机过程中指导用户。 |
-k |
避免关闭系统。 |
-m |
将系统关闭置于维护(单用户)方式。 |
-r |
使用 reboot 命令关闭后,重新启动系统。 |
-v |
完全终止操作系统。 |
要快速关闭并重新启动系统,可以输入:
shutdown -Fr
在这个过程结束时,在重新启动之前,您将看到消息“shutdown completed.”。
向关闭过程添加应用程序
有时候,需要正确地关闭所有的应用程序和其他用户进程,而不是发出 kill 命令以结束这些进程。通过将您所需的命令和操作添加到一个名为
/etc/rc.shutdown 的文件,您就可以实现这一点。每次在执行 shutdown 命令时,将会检查 /etc/rc.shutdown
文件。如果该文件存在,将会运行该文件;否则,系统将根据系统关闭任务所使用的标志,执行常规的关闭操作。
技巧:在由 /usr/sbin/shutdown 脚本调用之前,必须将 /etc/rc.shutdown 设置为可执行的 。
从 AIX Version 4.2.0 开始,对 /usr/sbin/shutdown 脚本进行了更改,以合并这个文件。下面显示了执行
rc.shutdown 文件的 /usr/sbin/shutdown 脚本的一部分内容:
if [ $nohalt = off ]
then
# /etc/rc.shutdown is for administrators to create for their
# own local needs.If it is not successful, shutdown will
# abort.
if [ -x /etc/rc.shutdown ]
then
sh /etc/rc.shutdown
if [ $?-ne 0 ] ; then
dspmsg -s 1 shutdown.cat 60 "/etc/rc.shutdown failed.Shutdown aborting.\n"
exit 1
fi
fi
|
对启动问题进行故障排除
有许多的因素可能导致系统故障。
- 由于处理不当(例如,如果有人故意访问并造成了破坏)。
- 在某些情况下,如电源故障,破坏了启动逻辑卷 (BLV)。
- 当磁盘出现了许多损坏的块时,这将导致系统不可用。
这些情况中的任何一种都可能使得系统无法重新启动。
在后续的部分中,将介绍系统无法启动的情况,以及如何纠正这些问题。
技巧:要执行所有的这些功能,您必须具有 root 权限。
访问无法启动的系统
如果您无法启动您的系统,那么第一步是访问该系统,并查看导致该故障的可能原因。这个过程允许您获得系统提示符,以便您可以尝试从系统恢复数据,或者执行纠正性的操作以使得系统能够从硬盘启动。
下面的步骤总结了访问一个无法启动的系统所需执行的过程。有关更详细的信息,请参见 AIX 安装指南。
要访问该系统:
1. 在打开系统单元的电源之前,先打开已连接的所有外部设备的电源,如终端、CDROM
驱动器、磁带驱动器、监视器和外部磁盘驱动器。然后,打开系统电源以便从安装媒体进行启动。
2. 将安装媒体 Volume 1 插入到磁带驱动器、CDROM 驱动器,关闭系统单元的电源。
3. 将系统钥匙(如果有)转到“服务”位置、或者在基于 PCI 的系统中按 F5(或者 5),以便从磁带或者 CD-ROM 驱动器启动(在步骤 4
的过程中)。
4. 将系统单元的电源切换到“on”位置。在从替换的媒体启动时,将会显示这样一个屏幕(在图 2 的屏幕之前),其中要求您按一个功能键(如
F1)以选择合适的显示器作为系统控制台。系统中连接的每个显示器都将接收到一个功能键数值,以便将其标识为系统控制台。系统从安装媒体启动。几分钟之后,LED
中将显示 C31(如果您的系统有 LED;否则,将会显示与图 2 所示类似的屏幕)。
图 2 “Welcome
to BOS Installation and Maintenance”菜单
5. 选择选项 3“Start Maintenance Mode for System Recovery”,并按 Enter。这时将显示与图 3
所示类似的屏幕。
图 3 “Maintenance”菜单
6. 选择 1,即“Access a Root Volume Group”。这时将显示与图 4 所示类似的屏幕。
图 4 “Warning”消息窗口
7. 输入 0,并按回车。这时将显示与图 5 所示类似的屏幕。
图 5 “Access a Root
Volume Group”菜单
8. 选择您希望显示逻辑卷信息的卷组。这是非常重要的,因为 rootvg 中将包含 hd5,即启动逻辑卷。输入卷组编号,并按回车。这时将显示与图 6
所示类似的屏幕。
图 6 “Volume Group
Information”菜单
9. 从“Volume Group Information”屏幕中选择一个选项,并按 Enter。其中每一项将进行以下操作:
选项 1:访问这个卷组并启动一个 Shell。
选择这个选项,将在系统为您提供 Shell 和系统提示符之前,先导入并激活 rootvg 卷组,并为根卷组挂载文件系统。
选项 2:在挂载文件系统之前,访问这个卷组并启动一个 Shell。
选择这个选项,将在为根卷组装入文件系统之前,先导入并激活 rootvg 卷组,并为您提供 Shell 和系统提示符。
选项 99:输入 99 将使您返回到“Access a Root Volume Group”屏幕。
在选择并处理了选项 1 或者 2 之后,将启动一个 Shell 并显示系统提示符。
10. 使用适当的方法来恢复数据、或者采取其他操作(如使用 bosboot 命令)使系统可以正常地启动。
安装媒体的问题
如果您正在安装一个新的系统或者执行迁移安装(迁移到一个新的 AIX 版本),那么您可能会碰到安装媒体的问题。
安装媒体问题的一些症状包括:在安装过程中出现意外的中止、无法从媒体读取信息、或者意外的系统重启。下面的步骤总结了确定安装媒体问题所需执行的过程:
1. 在打开系统单元的电源之前,确保先打开了连接的所有外部设备的电源,如终端、CDROM
驱动器、磁带驱动器、监视器和外部磁盘驱动器。如果在打开系统单元之后打开外部单元,可能会阻止外部单元对系统单元进行操作、或者向系统单元发送信息。例如,如果在打开系统单元之后打开
SCSI CD-ROM 进行系统安装,可能会使得 CD-ROM 无法使用。
2. 通过观察,检查媒体的物理损坏。例如,如果 CD-ROM 上有划痕,可能导致 CD-ROM
驱动器无法对其进行正确地读取。或者,磁带驱动器的带条露到带匣的外面,可能无法在磁带驱动器中正确地使用。不应该使用具有物理损坏的安装媒体来进行安装,应该将其放到一边或者扔掉。
3.
确保在安装之前,对所有的安装选项进行了正确地设置。如果您所使用的安装和选项向系统提供了不正确的命令或者配置,那么系统可能无法正常地执行安装工作。例如,如果您告诉系统将
BOS 安装到一个大小不足以容纳 BOS 的磁盘中,那么您的安装工作将无法完成。
4.
如果安装过程无法正确进行,可以尝试使用另一套媒体进行安装。您的媒体可能因为磨损、生产缺陷、或者环境因素而无法正常使用。获取安装媒体的另一个副本,并重复执行安装过程。
5.
确保所有的硬件都正常工作。如果安装媒体能够在另一个系统中正常运行,但是在您的系统中却出现了安装故障,那么可能存在硬件问题。检查所有的外部电缆,并确保对硬件进行了正确地配置。例如,您的系统中的两个设备可能正共享相同的
SCSI 地址,而这将使得安装过程中止。如果问题依然存在,可以使用诊断磁盘进行分析、或者联系您的本地客户工程师以寻求硬件支持。
启动时常见的 LED 错误代码和恢复操作
在表 8 中,列出了一些最常见的启动问题,以及使得您的系统正常启动和运行的方法。
表 8 常见的启动 LED 和恢复操作
LED 201 - 启动映像损坏 |
1. 按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg。 |
2. 检查 / 和 /tmp 文件系统。如果它们几乎满了,那么创建更多的空间。 |
3. 使用下面的命令,确定启动磁盘:lslv -m hd5 |
4. 使用下面的命令重新创建启动映像:bosboot -a -d /dev/hdiskn |
5. 在错误日志中检查 CHECKSTOP 错误。如果找到了这样的错误,它很可能表示硬件的故障。 |
6. 关闭并重新启动系统。 |
LED 223-229 - 无效的启动列表 |
1. 将钥匙模式切换到“服务”(或者 F5,对于那些没有钥匙锁的系统),并打开计算机的电源。 |
2. 如果显示正常继续,则将钥匙模式切换到“常规”并继续第3步。如果没有得到提示,则进入第 4 步。 |
3. 当您获得登录提示时,进行登录,并按照“使用 bootlist 命令”中所描述的过程来更改您的启动列表。然后继续执行第 7
步。 |
4. 按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg,并继续执行第 5 步。 |
5. 使用下面的命令,确定启动磁盘:lslv -m hd5 |
6. 按照“使用 bootlist 命令”中所描述的过程来更改您的启动列表。 |
7. 关闭并重新启动您的系统。 |
LED 551、555 和 557 - 由于损坏的文件系统和损坏的 JFS 日志导致的错误 |
1. 按照 “访问无法启动的系统”中所描述的过程,在挂载文件系统之前(在“Maintenance”屏幕中)访问 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 where n is the number of the file
system. |
3. 使用如下的命令重新构建 JFS 日志: /usr/sbin/logform /dev/hd8 |
4. 如果这样做可以解决问题,那么就结束操作;否则,继续执行第 5 步。 |
5. 您的 ODM 数据库遭到破坏。重新启动您的系统,并按照“访问无法启动的系统”中所描述的过程来访问您的 rootvg(使用选项 2)。
|
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 |
12. 重新启动系统。如果系统无法启动,请重新安装 BOS。 |
|