Solaris boot过程详解
admin
2023-02-04 14:20:02
0
正确理解操作系统的boot过程对系统管理员非常有帮助,在系统出现问题无法完成boot过程中,我们通过对正常boot过程的理解能大致判断问题所在。但是由于故障现象的错综复杂往往需要加以仔细分析才能找到症结所在,本文通过Solaris boot过程的详细介绍,以帮助系统管理员正确理解系统和判断故障并派出故障。

一、boot过程详解

以下具体讲解系统引导的整个过程,主要以SPARC平台为例:

lPoweron 过程

为服务器打开电源开关需要注意以下几个部分,几乎所有服务器都带有锁来固定几个状态:电源开关正常位置、锁住电源开关、开机诊断、关闭电源开关,开电之前一定要确认钥匙的位置。

lPOST过程

服务器电源打开后,系统将首先进入一个上电自检的过程。diag-switch?开关参数如果设置为true,那么将可以从服务器的串口看到详细的输出。diag-level参数决定着POST的过程,缺省设置为min,设置为max时候,串口能看到更多的信息输出,但是系统进入OBP而引导OS的时间也将大大推延了!在POST过程中,系统将对所有硬件一一作测试诊断,对于系统管理员来说,有可疑的硬件故障就有可能从POST过程中诊断出来。

l系统初始化Init SYSTEM

POST结束后,系统将进一步进行初始化,该过程又可以具体分为以下几个部分:

oOBPOpenBoot PROM定制了系统的一些信息,自检结束后,系统进入OBP,同时将MMUmemory management unit)设为有效(enable

oNVRAMuse-nvramrc?参数设置为true的话,系统将读取NVRAMRC,并执行之,这里面可能包括一些引导设备的信息,比如说如果系统盘使用vxvm或者DiskSuite封装的,将需要修改这些脚本来指明引导设备。

oProbe All:这将检测所有的SCSI或者其它类型的磁盘和设备

oInstall Consle:系统在此状态下,如果安装了键盘和鼠标以及显示器的话,显示器将有输出并点亮,如果只有串口的话,那么此时串口已经作为console台可以进行访问了。

oBanner:决定console台后,系统将在console台输出Banner信息

oCreate Devices Tree:所有硬件设备的设备树将在此时由OBP程序创建,这个非常重要,这对后面的引导OS起着非常重要的作用。

  • auto-boot?

OBP程序创建了设备树后,系统将进入引导OS的过程,PROM参数auto-boot?参数设置为trueboot过程将自动进行,如果为falseboot过程将中止而进入OBPok〉提示符下,由用户手工来完成boot

注意:auto-boot?设置为true的情况下,引导过程将自动执行,引导设备是由boot-device指定的,但是在diag-switch?被设置为true的时候,引导自动进行时的引导设备将由diag-device来决定。

  • bootblk

OBP程序找到引导设备后,就直接将引导设备上所存储的bootblk调入内存进行执行,如果该引导块不存在或者已经损坏,系统将无法完成bootSolaris 8会返回一条信息,The file just loaded can not to be executed。这说明需要重新创建bootblk,方法非常简单,用光驱引导系统,将原盘系统根mount起来,使用installboot命令来重新生成bootblk

  • ufsboot:

执行完bootblk后系统将执行第二个程序/platform/`arch –k`/ufsboot ,该程序将UNIXkernelp_w_picpath文件调入内存,如果该文件损坏的话,系统将无法继续引导,返回一条类似的信息,a bootlbk:Can’t find the boot program

  • kernel: 

系统的影像p_w_picpath文件调用和运行,在32位和64位系统将调用不同的文件,32位系统将涉及以下两个文件:

1/platform/`arch –k`/kernel/unix

2/kernel/genunix

64位系统将涉及以下两个文件

1. /platform/`arch –k`/kernel/sparcV9/unix

2. /kernel/genunix

kernelp_w_picpath文件调用进内存并作进一步的初始化,而且将加载各种模块,使用ufsboot读取各文件,在mount根系统之前将所需模块全部调用进内存。在这点,ufsboot不在起作用,而kernel将使用自己的驱动,此时如果根文件系统存在问题,系统将无法继续引导。

  • /etc/system:

/etc/system文件将由kernel从根系统从读取,该文件定制了系统参数:

以下是几种定制系统参数的option:

    • moddir: 用来指定和改变系统kernel模块的路径

    • forceload: 强制将系kernel模块调用进OS

    • exclude:用以执行一个特定的系统模块

    • rootfs:用以指定系统根系统类型,ufs文件系统为缺省值

    • rootdev: 指定根系统设备物理路径

    • set: 设置kernel可调节的系统参数

如果需要修改/etc/system文件,强烈建议先做拷贝然后再编辑,否则该文件错误严重的情况下将导致系统无法完成boot,而有了备份,那么在系统引导时候可以使用-a的boot option来进行选择/etc/system.bak来引导系统,如果没有做备份就必须使用boot cdrom –s的方式将系统根系统mount起来再手工修改错误的/etc/system文件。

  • kernel initialized

kernel按照系统文件参数完成所有的module的调用后,首先创建系统的第一进程sched,其进程号为0,而该进程有时候被叫做“swapper”。

  • init: 

init进程是第二个被创建的,该进程创建后读取/etc/inittab文件和/etc/default/init文件,这两个文件对系统的定制作了一些规定,比如说系统的缺省运行级别,系统时区和语言环境等等,该进程是系统以后所有进程的父进程。

  • rc scripts: 

init进程创建以后,系统就根据/etc/inittab文件中指定的运行级别来执行相关的启动脚本,所有的启动rc脚本都存放在/etc/rc#.d目录下,不同级别执行不同的脚本以启动与级别相对应的进程。需要注意的是/etc/rc#.d目录下的脚本都将被执行,首先执行K打头的脚本,然后执行S打头的脚本,并安装ASCII码的顺序执行。

以下是我在豆丁发布的该文档全文,请帮我刷一刷,这样我能赚点豆元,就可以多下点文档了:http://www.docin.com/p-550964558.html

 

相关内容

热门资讯

网民虚构自己钓鱼时发现尸体,被... 2026年6月22日,平舆县东皇街道居民凡某某为博取流量、吸引网友关注,拼凑多张图片剪辑制作短视频,...
“他们承受的痛苦还不够”,特朗... 据美国“阿克西奥斯新闻网(Axios)今天(7月23日)报道,美国总统特朗普在接受采访时透露,他正“...
急派超百名军医,美国准备地面战... 在加大空袭力度的同时,美军持续向中东增派战机、特种作战力量和后勤保障人员。与此同时,美军高层承认,单...
唐驳虎丨王虹、邓煜同获菲尔兹奖... 作者丨唐驳虎核心提要1. 本届国际数学家大会上,北大数院2007级校友王虹、邓煜同获菲尔兹奖,成为首...
菲尔兹奖获得者邓煜:爬山时破解... 作者:周盛楠 王僖妍·邓煜。(受访者供图)2026年7月23日,注定是改写中国数学历史的一天。邓煜、...
中国籍数学家王虹获菲尔兹奖 当地时间7月23日上午,2026年国际数学家大会在美国费城开幕,现场揭晓2026年菲尔兹奖得主。中国...
首次突破 屡创新高!一组数字解... 2026年上半年我国GDP同比增长4.7%经济韧性持续彰显在已经出炉的经济数据中更值得关注的还有“含...
男主播卖惨,66岁患癌老太花光... 今年3月,沈阳66岁的张阿姨在家养病期间刷视频时,被一名IP属地为湖北的男主播吸引。该主播主打演唱经...
松下智能马桶盖不喷水怎么回事 松下智能马桶盖不喷水怎么回事1、有时候新买的马桶在安装的时候工人有时候会不会告诉你需要开进水阀的,智...
松下智能马桶盖不喷水 1、有时候新买的马桶在安装的时候工人有时候会不会告诉你需要开进水阀的,智能马桶都是带有进水阀的,如果...