对于日常的系统管理和故障排除,理解系统的启动和关闭过程是非常重要的。
保存在ROM中的引导代码支持每一个HP-9000服务器和工作站,只要给系统加电,这些代码被执行并完成自检和一些初始化任务,接着装入HP-UX内核并把控制权交给它。从控制台或终端上得到一个登录提示符之前,内核完成了很多系统初始化任务。
1.
当你加电或重新启动一个系统并开始引导引导过程,它分为两个过程:
&引导ROM启动
&HP-UX启动
第一阶段,引导ROM启动过程被执行,完成后,它开始HP-UX启动过程,这个过程由许多步骤完成。
(1)加电或重启
(2)处理器相关代码(PDC)执行并完成自检,这些检测包括内存和CPU,还有一些外设。
(3)PDC初始化系统控制台来显示消息,它查找引导系统的主引导路径。
(4)PDC从引导路径装入(初始化系统装载器)ISL。
#在启动过程这个阶段,ROM的任务完成。
(5)ISL加载叫做hpux的第二个系统加载器,它保存在硬盘的引导区内。
(6)hpux把HP-UX内核/stand/vmunix加载到内存中并把控制权转交给内核。
(7)内核启动swapper进程然后启动init进程。
(8)init进程读它的初始化文件/etc/inittab,并初始化大多数的操作系统守护进程和其他进程。
init完成它的任务后,你就会在控制台或者链接到系统的终端上看到一个登录提示符。
2.
关于PDC:
PDC(处理器相关代码)的用途:
- 选择主和备用引导路径
- 从一个指定的设备上引导
- 引导到单用户模式
在命令菜单上使用search后,可以搜索引导设备,可以使用路径号或设备路径引导,比如:
boot P6 或者 boot /10/4/4.2
很多用户再服务器中为了冗余和稳定性使用了磁盘镜像,两个磁盘有完全相同的数据。
配置一个预备的引导设备,可以使用configure命令
手工地从预备磁盘设备商引导,使用boot alt命令
稳态存储器(RAM):
非易失性内存,这里保存了如下的信息:
- 主引导路径
- 预备引导路径
- 控制台
- autoboot
- autosearch
这些信息被PDC使用,你可以使用configure来改变这些信息,最后两个可以打开也可以关闭。
3.
系统磁盘上的引导区:
引导HP-UX的系统磁盘上有一个引导区和一个根分区。也有交换空间跟其他文件系统。
引导区包含一个引导装载器和在引导时必须的信息。
ISL也是引导区的一部分。
引导区的文件是逻辑交互格式(LIF)。
- 引导区的重要部分:
- 标识LIF卷的LIF卷头
- 包含HP-UX卷名的文件
- 包括在这个区中的文件的列表的目录
- ISL
- 二级的装载工具(hpux)
- 名为AUTO的文件
在PDC完成工作后,ISL被从PDC选择的引导设备装载入内存。
现在ISL取得了对引导过程的控制权并读取AUTO文件,这个AUTO文件包含hpux工具名和传递给hpux的任何参数。
ISL把hpux加载到内存并为hpux提供所有的参数。
开始执行后,hpux工具用这些参数来找到HP-UX内核的位置和文件名。
缺省时,内核保存在/stand目录中的vmunix。
hpux装载内核到内存中并把控制权交给内核。
与LIF相关的命令:
- lifls -l 显示LIF区中的文件
- lifcp 显示AUTO文件的内容
- mkboot 安装LIF区中的文件
- rmboot 修改或删除LIF区中的文件
4.
初始化系统加载器(ISL)
如果autoboot被打开并且没有中断引导过程,ISL自动完成它预定的任务。
通过中断PDC可以与ISL交互。
在中断后,当你从PDC菜单上使用boot命令后,它给出你一个与ISL交互的选项。
在ISL提示符后,可以使用命令改变RAM中的参数。
- display 显示现有的值
- conspath 修改控制台路径
- primpath 修改主引导路径
- altpath 修改预备引导路径
- autoboot 把autoboot打开或者关闭
- autosearch 把autosearch打开或关闭
也可以在一个运行的系统上使用setboot命令来查看和改变这些参数。
二级装载器(hpux)
二级装载器hpux位于包含LIF区的磁盘引导块中。
缺省时,ISL读取LIF区中的AUTO文件给hpux的参数。
也可以在ISL提示符后运行hpux并手工地给这个命令提供不同的参数。
如果hpux不带任何参数运行,它将从主引导设备装载缺省位置的内核文件。
- ISL>hpux /stand/vmunix.old #引导一个名字为vmunix.old的内核
- ISL>hpux -is #引导系统到单用户模式
- ISL>hpux -is /stand/vmunix.old #引导一个名字为vmunix.old的内核到单用户模式
- ISL>hpux -ll #列出/stand目录中的文件
- ISL>hpux show autofile #显示auto文件的内容
- ISL>hpux set autofile <filename> #用filename中的内容设置AUTO文件
- ISL>hpux -v #显示hpux工具的版本号
5.
装载HP-UX内核:
二级装载器(hpux)把内核装进内存后,把控制权传给了它。
内核接着装载设备驱动程序并启动swapper进程。
接着初始化一个shell进程来执行/sbin/pre_init_rc中的命令。
执行了这些命令后,第一个进程init被启动并且控制权传送给它。
swapper进程有一个等于0的进程ID,它管理用于换入换出的内存。
/sbin/pre_init_rc这个文件最重要的命令时fsck,它在用户使用前检查并修复根文件系统。
6.
init 进程:
在引导序列中这是最重要的进程,进程ID1。
它启动后,读取它的配置文件/etc/inittab并在action域中查找initdefault条目,告诉init系统的默认运行级。
运行级是系统的一个状态,在任何时候系统处于一个已定义的运行级。
如果没有initdefault条目,Init提示一个要进入的运行级。
根据选择的缺省运行级它接着派生出ioinit、bcheckrc、rc和getty进程。
init惊醒的主要工作:
从/etc/inittab文件中读取initdefault参数
使用/sbin/ioinitrc来初始化内核数据结构
运行/sbin/bcheckrc
运行/sbin/rc并把系统带到缺省运行级
/etc/inittab是init进程的配置文件:
id:rstate:action:process
id:每一个条目的唯一ID,长度为1-4个字符
rstate:每个条目被处理的运行级,可以声明多个运行级,没有数值默认在所有运行级
action:告诉init如何处理下一个域中声明的进程的关键字,boot表示这个进程在引导时启动但不等待它结束;
bootwait告诉init进程在引导时启动这个进程并等待它结束;initdefault告诉init在引导过程结束后系统
进入哪个运行级;respawn告诉系统如果这个进程不存在或由于某些原因终止,重新启动它。sysinit
表示在init进程访问控制台之前处理这个条目;wait告诉init启动进程并等待进程结束。
process:这是真正的进程或被执行的命令行。
运行级:
0表示关机
s表示单用户模式并只有一个控制台可以使用
S和s相似,唯一区别是可以作为系统控制台的终端登录
1表示启动一些基本系统进程并启动文件系统的单用户模式。
2表示多用户运行级,多数系统守护进程和服务在这个运行级启动。
3表示网络服务启动并且NFS文件导出,这个运行级也启动CDE。
4为使用老式的HP VUE图形环境用户提供接口
5与6对用户定义的服务有效。。。
使用init X改变运行级。不能使用init S从一个较高运行级进入单用户模式。
who -r可以判断当前运行级
7.
添加在引导时运行的程序:
可以添加一个程序到你的系统以便它在一个特定的运行级被执行。
首先,一个用于启动和关闭一个程序的执行脚本被安装在/sbin/init.d目录。
这个目录包含所有守护进程和服务的脚本。
执行脚本包括4个作为传递这些脚本命令行参数的主要参数:
- star_msg 当启动这个脚本时显示在控制台上
- stop_msg 当关闭这个脚本时显示在控制台上
- start 启动这个程序的命令
- stop 关闭这个程序的命令
这些脚本在/etc/rc.config.d目录中有配置文件用于给这些脚本设置合适的变量和选项。
必须在这个目录下为执行脚本放置一个配置文件。
一旦一个脚本被安装,你需要决定它应该在哪个运行级被启用。
HP-UX有一个名为/sbin/rcN.d的目录,这里N表示一个运行级。
这些目录就叫做定序器目录。
比如,如果想在运行级3启动脚本,则在/sbin/rc3.d目录放置一个链接。
你必须放置一个链接用于启动脚本,另一个用于关闭它。
定时器目录:
一个定时器目录是一个特定的目录。
例如:/sbin/rc2.d包含当系统转到运行级2的时候需要启动或关闭的脚本链接。
每一个链接为S和K开头。
S开头的文件表示系统进入这个运行级时被执行的脚本,而以K(kill)开头的相反。
在S和K之后,有一个用于显示脚本被启动或者关闭顺序的数字。
一个典型的用于启动CRON守护进程的链接是:/sbin/rc2.d/s730cron
配置文件:
脚本配置文件放置在/etc/rc.config.d目录下,这些文件用于定序器脚本来检查一个特定的守护进程的配置,通常它们与/sbin/init.d目录中对应的脚本同名。
通过赋值0或1来启用或禁用进程。
8.
shutdown -r 在关闭后重新启动系统
shutdown -h 在关闭后停止系统
shutdown -y 不需要任何交互响应
shutdown命令调用/sbin/rc脚本,它在停止前按顺序使用定序器脚本来关闭所有守护进程。
/etc/shutdown.log文件保存了一个关闭和重启系统的日志。
shutdown -allow文件允许一些系统用户执行shutdown命令。每一行包含一个系统名后跟着用户名。