Chinaunix首页 | 论坛 | 博客
  • 博客访问: 372440
  • 博文数量: 80
  • 博客积分: 6032
  • 博客等级: 准将
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-05 20:07
文章分类

全部博文(80)

文章存档

2007年(1)

2006年(22)

2005年(57)

我的朋友

分类:

2006-07-06 16:31:19

原创:AIX红皮书191原文翻译

欢迎转载

这章讨论启动过程和当系统在初始化阶段你可能遇到的普遍的问题。也包括了普遍的命令用于联合启动过程去操作环境。

学完这个章节后,你应该能够:

       了解基本的启动过程并能运行一个命令去关闭系统;

       确定和控制与启动过程有关的设备;

       访问AIX的错误日志;

       解决启动问题;

       理解并记住基本的LED错误代码。

下面是一个贯穿本章被用到的重要命令的列表:

alog               用于维护和管理日志文件。参考2.4.1节,“使用alog命令”,在第14页有更进一步的描述。

cfgmgr           配置设备和随意的安装设备到系统。参考2.4.2节,“使用cfgmgr命令”,在第18页有更进一

步的描述。

last                通过映射/var/adm/wtmp文件中的条目显示所有先前的登入和登出。参考2.4.3节,“使用last

命令”,在第20页有更进一步的描述。

bootlist           显示和改变可用于系统的启动设备列表。参考2.4.4节,“使用bootlist命令”,在第22页有

更进一步的描述。

uptime           显示系统已经运行了多长时间。参考2.4.5节,“使用uptime命令”,在第23页有更进一步的

描述。

mpcfg            授予具有root权限的用户去管理服务信息。参考2.4.6节,“使用mpcfg命令”,在第24页有

更进一步的描述。

shutdown        用于关闭系统。参考2.4.7节,“使用shutdown命令”,在第26页有更进一步的描述。

启动期间,系统检测硬件,装入并运行操作系统,配置设备。为了能启动操作系统,需要下面的资源:

在系统被开启或重置后一个启动镜像能被载入;

可以访问 / /usr文件系统。

 

系统启动有3种类型:

◆硬盘启动

一个机器为一般的操作被开始,钥匙设置在一个normal的位置。在基于PCI的系统没有钥匙锁定,这是默认的启动方式。

◆无盘网络启动

一个无盘或者无数据的工作站远程地通过一个网络启动。一个机器用钥匙在一个普通的位置为一般的操作被开始。一个或更多的远程文件服务器提供无盘或无数据的工作站启动所需要的文件和程序。

◆服务启动

一个机器从硬盘、网络、磁带或者CDROM启动,钥匙设置在service的位置。这种环境也被叫做维护模式。在维护模式,系统管理员可以执行任务,例如安装新的或更新软件并且运行诊断检查。

 

硬盘启动期间,一个当操作系统被安装时建立的启动镜像被找到。启动过程期间,系统配置在机器中找到的所有设备并且初始化其它的为了系统去操作的基本软件需求(例如逻辑卷管理)。在这个过程的最后,文件系统被挂载上准备使用。

大体类似的需求被应用在无盘网络的客户端。它们也需要一个启动镜像和能访问操作系统文件树。无盘网络客户端没有本地的文件系统,通过远程访问的方式获得所有的信息。

系统在它的磁盘驱动器上查找为启动过程所有的必要的信息,当系统被启动通过打开电源开关(冷启)或者重新启动用rebootshutdown命令(热启)的时候,许多事件必须在系统准备使用之前出现。这些事件可以被分成下列几个阶段:

1ROSRead Only Storage)内核初始化阶段

在这个阶段,主板问题被检查,ROS初始化程序装入搜索启动列表。一旦启动列表被找到,系统启动镜像就被读入内存中,系统初始化开始。

2.基本设备配置阶段

所有的设备靠cfgmgr命令的帮助在这个阶段被配置。

3.系统启动阶段

在启动过程的这个阶段,所有的逻辑卷被装载,内存页面被开始,/etc/initab文件被执行。

灯和声音信号

几个基于MCARS/6000系统有LED显示系统启动过程正在经历什么样的阶段。如果出现错误,你可以翻译LED代码,采取适当的行为调整这些问题

 

暗示:作为一个专家,记住这些错误代码能让你迅速找到问题的关键。因此它是考试的一部分需要记忆。

 

PCI RS/6000用声音和图形去显示不同的启动阶段。例如:你一给系统加电,当处理器发现被激活了就会发出哔的一声,当系统的内存检查完成“PowerPC”的logo就会显示(或者以文本呈现),具有有效地址的所有设备的logo也被显示。在设备logo显示完后,如果系统的ROS没有损坏,又会发出哔的一声。

系统管理员用这些指示器解决这些启动过程中可能遇到的问题

这些命令用于去管理系统启动、关机和相关的任务在下面的部分讨论。

命令

这可能是个实例在系统启动过程中当你必须跟踪启动过程找到出现问题的地方。AIX提供给你一个极好的工具通过alog命令的帮助去监视这些问题。

alog命令可以维护和管理日志。它从标准输入读取,写到标准输出,并且拷贝输出到一个受大小限制的文件。这个文件视作一个循环日志。如果这个文件满了,新的条目就会覆盖现有的最旧的条目。

rc.local脚本明确地用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数据库中定义的日志文件起作用。

用于alog命令的更多的普遍的标记和描述列在表2-1中:

 

2-1 alog命令标记

标记

描述

-f LogFile

指定一个日志文件的名字。如果被指定的日志文件不存在,就创建一个。如果alog命令不能写入日志文件,则写入/dev/null

-L

显示当前在alog配置数据库中定义的日志类型。如果你使用-L标记和-t LogType标记,则显示被指定的日志类型的属性。

-o

显示日志文件的内容;按顺序写日志文件的内容到标准输出。

-q

拷贝标准输入到日志文件,但不写到标准输出。

-t LogType

标识在alog配置数据库中定义的日志。alog命令从alog配置数据库中得到日志的文件名称和大小。

 

AIX日志可以用smitalog命令直接去维护。alog命令一般的用处在下面几个地方:

◆显示一个日志文件的内容

列出一个日志文件的内容,用这个命令:

alog -f LogFile -o

◆把日志数据记录到一个指定的文件

你可以改变默认的记录行为,用这个命令:

alog -f LogFile | [ [ -q ] [ -s Size ] ]

◆显示一个指定的日志类型的详细值

这个详细的值指定了写到一个日志的深层信息。为了显示一个日志的详细输出,用下面的命令:

alog -t LogType -v

◆改变一个指定日志类型的属性

你可以使用一个日志类型的不同属性,用下面的命令:

alog -C -t LogType [ -f LogFile ] [ -s Size ] [ -w Verbosity ]

◆显示一个指定日志类型的当前属性

在你改变一个日志属性之前建议你看一下它的当前属性是什么。用下面的命令显示一个日志类型的当前属性:

alog -L [ -t LogType ]

 

看启动日志,可以直接用smitalog命令。按照这个顺序“查看启动日志”在17页去查看一个启动日志的内容。

◆查看启动日志

看启动日志可以用smit的快速路径smitty alog_show并且给出你想看的日志的名字,或者用alog命令。为了能用alog命令看一个日志,要确定你预先定义的日志是有效的。

alog -L命令去看在alog数据库中的日志定义。在命令行键入:

# alog -L

boot

bosint

nim

dumpsymp

boot日志(这个日志保存着启动信息)键入:

# 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命令没有并行控制,因此,如果多个处理器在同一时间写入相同的文件,日志文件的内容可能不是可以预料的。另外,它是一个循环文件,因此,当它的大小达到最大值就会被覆盖。

命令

启动过程期间,系统必须确认资源对它是可用的。例如,系统必须确认什么种类的总线系统正被使用,什么类型的设备放在系统上,rootvg驻留在哪里,等等。这些设备的配置被BOS命令cfgmgr处理。cfgmgr命令配置设备并且可选择地安装设备软件到系统

一般的cfgmgr命令的参数如下:

cfgmgr [ -f | -s | -p Phase ] [ -i Device ] [ -l Name ] [ -v ]

更多的普遍使用的标记和描述在表2-2中给出:

 

2-2 cfgmgr命令的标记

标记

描述

-f

指定cfgmgr命令执行阶段1配置规则。运行时(系统启动后)此标记无效。

-i Device

指定安装介质的位置。

-l Name

指定命名设备去配置该设备及其子设备。

-p Phase

指定cfgmgr命令执行指定的阶段。

-s

指定cfgmgr命令执行阶段2配置规则。

-v

指定详细输出。cfgmgr命令将它的操作写到标准输出。

 

要配置的设备由配置规则对象类控制,此对象类是设备配置数据库的一部分。每条配置规则指定三项:

◆要运行的可执行程序的全路径

◆何时执行程序(与其它规则有关)

◆在哪个阶段运行程序

 

系统一道期间,cfgmgr命令会配置使用系统所需的所有设备。系统引导有两个阶段组成。

◆阶段1

当内核被带入系统,引导文件系统被初始化时,阶段1就开始了。在这个阶段,cfgmgr命令被调用,用-f标记指定这个阶段为阶段1cfgmgr命令执行所有的阶段1配置规则,这样做的结果基础设备被配置。

◆阶段2

在这个阶段,cfgmgr命令调用-s标记。

 

cfgmgr命令可识别配置规则的3个阶段:

◆阶段1

◆阶段2 正常引导的第二个引导阶段

◆阶段3 服务引导的第二个引导阶段

 

通常,cfgmgr命令在调用期间执行指定阶段的所有规则(如,-f标记的阶段1规则)。然而,如果使用了-l标记,cfgmgr命令仅配置命名的设备及其子设备。

如果调用cfgmgr命令但不使用阶段选项(例如,没有-f-s-p标记),那么此命令执行阶段2规则。运行阶段3规则的唯一方法是使用-p

阅读(3198) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~