第三章 启动和关闭AIX操作系统

一、小机启动时,可以再引导过程中,选择不同的系统运行模式:

1)从 磁带或者cdrom引导系统进入维护模式(单用户模式)

2)从硬盘引导系统进入到维护模式(单用户模式)和正常模式(多用户模式)

3)进入系统管理维护模式(SMS模式:System Management Services)

二、一般引导过程概述

经典的RS6000机器(MCA)结构系统硬件自检分两个阶段:内置设备自检阶段(BIST)和加电自检阶段(POST),对于PCI的机器,则由单独的加电自检(POST)完成硬件检查。

经过硬件检查,系统就尝试加载引导逻辑卷(BLV:Boot Logical Volume),并在内存中形成RAMFS,并把控制权交给BLV,但由于内存中没有加载任何LVM(logic volume manager,LVM)的驱动,因此系统必须在不适用LVM的情况下正确找到BLV数据在硬盘上的位置。正确的BLV的地址信息(包括偏移量和长度)保存在引导磁盘的第一个物理扇区(这个扇区有512字节的块)上,这个扇区称之为引导记录(Boot Record)。

==========RAM文件系统===============

RAMFS是引导镜像的一部分,完全常驻内存,而且包含很多能让引导继续的程序。在RAM文件系统中运行的init进程实际上是ssh(simple shell)程序,这个程序通过调用rc.boot脚本来控制系统引导过程,rc.boot脚本第一步决定操作系统从哪个设备上引导,决定引导的设备应该在RAM文件系统中的配置(rc.boot脚本找到引导设备以后,从RAM文件系统中条用相应的程序来进行配置)
====================================

引导逻辑卷BLV也成为引导镜像,它包括下边这几个部分:

1)软件ROS——ROS是“只读存储器”的意思,软件ROS只存在于PCI的机器中,执行一些系统初始化的工作,PCI机器的ROS不提供软件ROS,而由AIX提供

2)AIX内核——AIX内核总是从BLV加载。/unix(软连接到/usr/lib/boot/unix_mp或unix_up)是一份内核副本,这个版本被用于构建hd4文件系统(也就是根文件系统)。在系统引导时,从hd4文件系统读取内核镜像。

3)rc.boot——rc.boot是一个shell命令文件,它是配置系统的脚本,在系统引导期间,init进程要执行这个脚本三次:

====================================

当加载BLV以后,由于rootvg没有被激活,并不可用,引导所需的信息都包含在用于在内存中创建RAM文件系统的BLV中,之后,init进程被加载运行,并由init进程开始配置基本信息:这就是第一引导阶段,这个阶段,init执行rc.boot的时候,带个参数1。

下一步为第二引导阶段(init执行rc.boot的时候,带个参数2),主要目的是激活rootvg(也是最容易出现问题的阶段,比如文件系统或者是jsflog损坏),接着把控制权交给rootvg中的init进程,然后释放RAM文件系统。

第三引导阶段,init进程(从磁盘加载的init进程,而不是BLV中的init进程)带参数3执行rc.boot脚本配置剩余的设备,并从/etc/inittab启动其他进程

====================================

4)简化的ODM——只提供最基本的设备配置信息

5)引导命令——比如cfgmgr和bootinfo等

三、基于PCI的系统引导模式

基于PCI的只有两种引导模式,分别是normal模式和service模式,多用户模式一般从内置硬盘启动,单用户模式可以从磁盘,cdrom或者硬盘启动。

以维护模式引导系统,就会进入到系统诊断状态,用户可以查看和更改系统的设备和配置,可以进行系统的诊断和维护工作。此时系统中只有一个root用户,所以称之为单用户模式。PCI系统的维护模式分为两种,一种:独立诊断模式(从磁带或者是cdrom引导到维护模式)。另一种是在线诊断模式(从硬盘引导)

在POST时确定引导模式,系统根据引导设备列表来引导,比如:“软磁盘-cdrom-硬盘-网络设备”类似这样一个设备组成。用户可以自己修改引导设备列表(用bootlist命令)也可以用SMS来自定义引导设备列表。自定义引导设备列表保存在NVRAM中,默认的引导列表保存在ROS中。

启动POST完成时,在第一个图标出来之后和最后一个图标出来之前,按键盘某个按键,进入相应模式:

F1/1    ---->SMS系统管理维护模式

F5/5    ---->默认引导设备列表引导维护模式,进入独立诊断模式

F6/6    ---->自定义引导设备列表引导维护模式,进入在线诊断模式

F8/8    ---->正常模式引导

在支持AIX的操作系统的机器是上,无论是否已安装AIX,都可以进入到独立诊断模式,只有安装了系统的机器可以进入在线诊断模式,诊断模式类型由系统从什么介质启动决定。

通过磁带、cdrom和网络方式启动系统,rootvg卷组不会激活,因为root卷组可能不存在(重新安装系统)。一旦进入独立诊断模式,就不能取出光盘,只能在给机器加电之后和POST完成之前才能去除光盘。

四、多用户模式启动流程

+++++++++++ROS内核初始化阶段+++++++++++++

1)首先由OCS(On-chip Sequencer)调用微处理器检查系统主板是否有问题,然后将控制权交给只读存储器(ROS),并执行系统加电自检(POST)

2)ROS初始化载入程序(IPL)检查用户自定义引导设备列表(Boot List),如果找不到自定义列表或者自定义引导设备列表不正确,就会使用默认引导列表,然后使用在引导列表中找到的第一个设备来引导。

3)到找到第一个可以引导的设备后,就检测引导设备上的第一个记录或物理扇区号(PSN:physical sector number)。如果是合法的引导记录。则把它读入内存,并附加到初始装入程序(IPL)的控制块上。然后根据引导记录中包含的“引导逻辑卷(BLV)长度和BLV的地址(BLV)在引导设备上的位置”把BLV装入到内存。

4)从引导设备中顺序的把引导逻辑卷(也就是引导镜像)读入到内存,建立RAM文件系统(RAMFS)。引导逻辑卷(BLV)由“内核、一个RAM文件系统和基本初始化设备信息(简化的ODM)组成。”

5)把控制权移交给在RAM文件系统中开始系统初始化的内核。

6)系统初始化的内核运行init程序(进程号为1),init进程继续去执行rc.boot脚本,并附带参数1

7)内核初始化阶段和硬件检测阶段结束。

++++++基本设备配置阶段(rc.boot第1阶段)+++++++

现在的情况是,系统完成硬件检测,找到BLV,简历了RAM,启动了RAM中的init进程,但是rootvg还没有激活。rc.boot第一阶段主要是完成基本的设备配置

1)RAMFS中的init进程执行引导脚本rc.boot带参数1,在这个过程中,rc.boot调用restbase命令,把引导逻辑卷(BLV)上的简化ODM数据库复制到RAMFS,如果这个操作时被,LED面板显示548.

2)然后rc.boot执行cfgmgr -f命令(配置管理器),让cfgmgr从简化的ODM数据库中读取Config_Rules类,在Config_Rules类中,属性值为1的设备都被认为是基本设备,基本设备是为访问rootvg所需的全部设备。rc.boot这个阶段执行cfgmgr来配置基本设备,以便在下一个rc.boot阶段能够激活rootvg。

以下就是这个文件的位置

顺便可以查出这个类下边phrase=1的对象:

(后边还有,未截图列出)

3)在rc.boot第一个引导阶段的最后,执行bootinfo -b命令来检测最后一次引导设备,这时LED显示511.

++++++++++++rc.boot第2引导阶段++++++++++++++++++

1)rc.boot执行ipl_varyon命令激活rootvg,若这个命令和执行不成功,则显示522、554、556中的一个

2)ipl_varyon执行成功以后,用fsck -fp /dev/hd4命令检查rootvg(位于磁盘上)的根文件系统,然后把rootvg的根文件系统(/dev/hd4)安装在RAMFS的临时安装点上(/mnt),这一步失败,显示错误代码555、557

3)安装/var和/usr文件系统。如果失败,显示518.一旦安装了/var文啊进系统,就用copycore命令把默认的dump设备(/dev/hd6)里最后的dump复制到默认的副本目录(/var/adm/ras),复制完dump之后,就卸载/var文件系统。

4)运行swapon(/usr/sbin/swapon)命令来激活rootvg上基本的页面空间(/dev/hd6)

5)用mergedev命令把RAMFS中/dev目录复制到磁盘上的文件系统中,再用cp Cu* /mnt/etc/bojrepos命令吧RAMFS中用户化的ODM数据库复制到磁盘上,这里/mnt/etc/bojrepos这个路径是因为,根目录/本临时挂在到RAMFS中的/mnt这个安装点上

6)从RAMFS中卸载/var和rootvg的根文件系统/dev/hd4(挂在到/mnt)

7)在RAMFS的根文件系统所在的安装点上永久性安装rootvg(位于磁盘)的根文件系统,由newroot命令完成RAM文件系统到rootvg的文件系统的切换。root卷组中的文件系统安装点可以使用以后,就将root卷组中的/usr和/var文件系统安装到相应的安装点

8)此时没有可使用的控制台,所有的引导信息都被复制到错误日志alog中

9)退出执行rc.boot脚本,把控制权移交给root卷组中的init进程,然后释放RAM文件系统

10)位于硬盘上的init进程将执行整个启动过程的最后一部分

·    因为控制台不可用,所以输出信息都记录在alog中。

init程序读取/etc/inittab文件,如果/etc/inittab存在,则init程序在/etc/inittab中寻找默认的系统启动初始记录(记录标识符是init,第三个字段是initdefault),整个记录中包含了预先登记在文件/etc/inittab中的进程。初始记录不存在,则init进程就会要求用户从系统控制台(/dev/console)输入一个运行级别。(用户输入S、s、M、m则进入单用户模式,只有进入单用户模式才不要求/etc/inittab内容必须是完整的)

·    如果/etc/inittab不存在,init默认直接进入系统维护运行级别

·    init进程每隔60秒重新读取一次/etc/inittab文件,如果init进程上次读过该文件之后,新增删了东西,这一次读取也会执行这些变化。

++++++++++++rc.boot第3引导阶段++++++++++++++++++

在/etc/inittab文件中第一条记录为initdefault,第二条记录的标识符为brc,这条记录就是指示init去执行rc.boot第3阶段。

第3阶段工作为:

1)安装/tmp文件系统

2)同步rootvg(通过执行命令#syncvg -v rootvg &),这可能会花一些时间,如果执行失败,则显示错误代码553

3)如果是正常(normal)引导,则执行cfgmgr -p2命令;如果是维护(service)模式引导,则执行cfgmgr -p3命令。cfgmgr读取ODM数据库中的Config_rules类,检查属性值是2或者是3的设备,并对其进行配置(属性值为1的设备在第1阶段就检查完了),即配置所有剩余设备。

4)用cfgcon命令配置控制台。不同的终端设备,在LED上显示的代码不同。

5)执行savebase命令把/(根)文件系统中的ODM数据库保存引导逻辑卷(BLV)中

6)退出执行rc.boot脚本,然后由init进程顺序启动/etc/inittab文件中的其他进程

五、操作系统运行级别

操作系统真正的运行级别有11个,是0-9,再加一个S、s、M、m,其中级别2表示多用户模式,S、s、M、m这写个级别表示单用户模式(维护模式)

六、init进程重读/etc/inittab文件

不论进程犹豫什么原因停止,init进程都会收到这个进程停止运行的信号,并且在/etc/utmp中记录它结束运行的原因,同时还会在文件/var/adm/wtmp中保存进程启动的历史记录。

当用户编辑了/etc/inittab文件,增加了一条记录或者修改了其中的command字段,init进程不会马上重读该文件,所增加或者是修改的进程不会被立刻创建,除非以下3个条件之一发生,新进程才能被创建——

1)init进程的子孙进程中有一个进程结束了

2)出现电源失败信号SIGPWR

3)用户用init命令发出改变系统运行级别和重新检查/etc/inittab文件的信号

其中,以上三个条件最简单的方法就是用init命令发出重新检查/etc/inittab文件的信号

#init Q

#telinit -q

时间: 2024-12-05 20:14:59

第三章 启动和关闭AIX操作系统的相关文章

操作系统思考 第三章 虚拟内存

第三章 虚拟内存 作者:Allen B. Downey 原文:Chapter 3 Virtual memory 译者:飞龙 协议:CC BY-NC-SA 4.0 3.1 简明信息理论 比特是二进制的数字,也是信息的单位.一个比特有两种可能的情况,写为0或者1.如果是两个比特,那就有四种可能的组合,00.01.10和11.通常,如果你有b个比特,你就可以表示2 ** b个值之一.一个字节是8个比特,所以它可以储存256个值之一. 从其它方面来讲,假设你想要储存字母表中的字母.字母共有26个,所以你

《操作系统精髓与设计原理》习题第三章

第三章习题 3.10.1关键术语 阻塞态:进程在某些事件发生之前不能执行,等待这种事件发生的状态. 退出态:操作系统从可执行进程组中释放出的进程,自身停止了,或者因某种原因被取消. 内核态:某些指令只能在特权状态下执行,而这种特权状态称为内核态. 子进程:由一个进程创建的进程,该进程的终止受父进程的影响. 中断:由外部事件引发进程挂起,CPU转而去处理发起中断的事件,并处理结束后恢复进程的执行. 模式切换:CPU由用户态和核心态之间相互切换. 新建态:进程创建时仅仅创建了对应的进程控制块而没有在

Orange's 自己动手写操作系统 第一章 十分钟完成的操作系统 U盘启动 全记录

材料: 1 nasm:编译汇编源代码,网上很多地方有下 2  WinHex:作为windows系统中的写U盘工具,需要是正版(full version)才有写的权限,推荐:http://down.liangchan.net/WinHex_16.7.rar 步骤: 1 编译得到引导程序的机器代码.用命令行编译汇编源代码:name boot.asm -o boot.bin,其中boot.bin文件产生在命令行的当前目录中. 2 将引导程序写入到U盘引导盘的第一个扇区的第一个字节处(后),即主引导区.

AIX查看sshd状态 启动sshd 关闭sshd

aix 开启 ssh[@[email protected]] cd /etc/sshvi sshd_config Port 22-- 去掉# PasswordAuthentication yes --去掉# lssrc -s sshd 查看状态stopsrc -s sshd; 停止sshstartsrc -s sshd 启动ssh 关键字:AIX查看sshd状态 启动sshd 关闭sshd

操作系统第三章总结(2)/

第三章 内存管理--虚拟内存 局部性原理:时间局部性(如果程序的某条指令/数据一旦执行,不久以后该指令/数据可能再次执行),空间局部性(访问了某一存储单元,不久之后附近的存储单元也会被访问) 时间局部性是通过近来使用的指令和数据保存到高速缓存存储器中,并使用高速缓存的层次结构实现. 空间局部性通常是使用较大的高速缓存,并预取机制集成到高速缓存控制逻辑中实现. 引入虚拟存储技术:提高系统的内存利用率和系统的吞吐量. 虚拟存储器:基于局部性原理,在程序装入时,可以将程序的一部分存入内存,其余留在外存

oracle初体验三----oracle10G的启动和关闭

oracle10G 的启动和关闭: 关闭:isqlplus和em(isqlplus/em没有关闭顺序,那一个先关闭都可以)--->监听--->数据库 isqlplus的关闭: netstat -tulnp | grep 5560  查看isqlplus的5560端口是否在监听 isqlplusctl  stop    netstat -tulnp | grep 5560  验证isqlplus是否被关闭 em的关闭: netstat -tulnp | grep 1158  查看em的1158端

linux程序设计——文件操作(第三章)

第三章    文件操作 3.1 linux文件结构 与UNIX一样,linux环境中的文件具有特别重要的意义,因为它们为操作系统服务和设备提供了一个简单而一致的接口.在linux中,一切都是文件. 这意味着,通常程序可以像使用文件那样使用磁盘文件.串行口.打印机等等. 目录也是文件,但它是一种特殊类型的文件.在现代UNIX(包括linux)版本中,即使是超级用户可能也不再被允许直接对目录进行写左操作了.所有用户通常都使用上层的opendir/readdir接口来读取目录,而无需了解特定系统中目录

深入浅出Zabbix 3.0 -- 第三章 Zabbix 监控方式

第三章  Zabbix 监控方式 有人说通过Zabbix可以完成任何监控任务,只有你想不到的,但没有监控不了的,真是这样吗?当你通过本章了解了Zabbix提供的多种监控方式后,你就会发现此言非虚. 这里所说的监控方式,实际上就是Zabbix中的配置监控项时选择的监控项类型.为了适应各种应用场景的需要,Zabbix提供了多种方法帮助你更好的完成监控任务. Zabbix 3.0中提供的监控方式包括: Active agents Passive agents Extending agents Simp

listener启动与关闭

查看SID是否启动OK命令: echo $ORACLE_SID 监听器相关命令: lsnrctl status --查看状态 lsnrctl start --启动 lsnrctl stop --关闭 lsnrctl service --启动服务 http://blog.itpub.net/95233/viewspace-623699/ http://blog.csdn.net/tianlesoftware/article/details/6617827 http://www.cnblogs.co