溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Solaris boot過(guò)程詳解

發(fā)布時(shí)間:2020-07-15 22:03:06 來(lái)源:網(wǎng)絡(luò) 閱讀:749 作者:luluwog 欄目:系統(tǒng)運(yùn)維
正確理解操作系統(tǒng)的boot過(guò)程對(duì)系統(tǒng)管理員非常有幫助,在系統(tǒng)出現(xiàn)問(wèn)題無(wú)法完成boot過(guò)程中,我們通過(guò)對(duì)正常boot過(guò)程的理解能大致判斷問(wèn)題所在。但是由于故障現(xiàn)象的錯(cuò)綜復(fù)雜往往需要加以仔細(xì)分析才能找到癥結(jié)所在,本文通過(guò)Solaris boot過(guò)程的詳細(xì)介紹,以幫助系統(tǒng)管理員正確理解系統(tǒng)和判斷故障并派出故障。

一、boot過(guò)程詳解

以下具體講解系統(tǒng)引導(dǎo)的整個(gè)過(guò)程,主要以SPARC平臺(tái)為例:

lPoweron 過(guò)程

服務(wù)器打開(kāi)電源開(kāi)關(guān)需要注意以下幾個(gè)部分,幾乎所有服務(wù)器都帶有鎖來(lái)固定幾個(gè)狀態(tài):電源開(kāi)關(guān)正常位置、鎖住電源開(kāi)關(guān)、開(kāi)機(jī)診斷、關(guān)閉電源開(kāi)關(guān),開(kāi)電之前一定要確認(rèn)鑰匙的位置。

lPOST過(guò)程

服務(wù)器電源打開(kāi)后,系統(tǒng)將首先進(jìn)入一個(gè)上電自檢的過(guò)程。diag-switch?開(kāi)關(guān)參數(shù)如果設(shè)置為true,那么將可以從服務(wù)器的串口看到詳細(xì)的輸出。diag-level參數(shù)決定著POST的過(guò)程,缺省設(shè)置為min,設(shè)置為max時(shí)候,串口能看到更多的信息輸出,但是系統(tǒng)進(jìn)入OBP而引導(dǎo)OS的時(shí)間也將大大推延了!在POST過(guò)程中,系統(tǒng)將對(duì)所有硬件一一作測(cè)試診斷,對(duì)于系統(tǒng)管理員來(lái)說(shuō),有可疑的硬件故障就有可能從POST過(guò)程中診斷出來(lái)。

l系統(tǒng)初始化Init SYSTEM

POST結(jié)束后,系統(tǒng)將進(jìn)一步進(jìn)行初始化,該過(guò)程又可以具體分為以下幾個(gè)部分:

oOBPOpenBoot PROM定制了系統(tǒng)的一些信息,自檢結(jié)束后,系統(tǒng)進(jìn)入OBP,同時(shí)將MMUmemory management unit)設(shè)為有效(enable

oNVRAMuse-nvramrc?參數(shù)設(shè)置為true的話,系統(tǒng)將讀取NVRAMRC,并執(zhí)行之,這里面可能包括一些引導(dǎo)設(shè)備的信息,比如說(shuō)如果系統(tǒng)盤(pán)使用vxvm或者DiskSuite封裝的,將需要修改這些腳本來(lái)指明引導(dǎo)設(shè)備。

oProbe All:這將檢測(cè)所有的SCSI或者其它類(lèi)型的磁盤(pán)和設(shè)備

oInstall Consle:系統(tǒng)在此狀態(tài)下,如果安裝了鍵盤(pán)和鼠標(biāo)以及顯示器的話,顯示器將有輸出并點(diǎn)亮,如果只有串口的話,那么此時(shí)串口已經(jīng)作為console臺(tái)可以進(jìn)行訪問(wèn)了。

oBanner:決定console臺(tái)后,系統(tǒng)將在console臺(tái)輸出Banner信息

oCreate Devices Tree:所有硬件設(shè)備的設(shè)備樹(shù)將在此時(shí)由OBP程序創(chuàng)建,這個(gè)非常重要,這對(duì)后面的引導(dǎo)OS起著非常重要的作用。

  • auto-boot?

OBP程序創(chuàng)建了設(shè)備樹(shù)后,系統(tǒng)將進(jìn)入引導(dǎo)OS的過(guò)程,PROM參數(shù)auto-boot?參數(shù)設(shè)置為trueboot過(guò)程將自動(dòng)進(jìn)行,如果為false,boot過(guò)程將中止而進(jìn)入OBPok〉提示符下,由用戶(hù)手工來(lái)完成boot。

注意:auto-boot?設(shè)置為true的情況下,引導(dǎo)過(guò)程將自動(dòng)執(zhí)行,引導(dǎo)設(shè)備是由boot-device指定的,但是在diag-switch?被設(shè)置為true的時(shí)候,引導(dǎo)自動(dòng)進(jìn)行時(shí)的引導(dǎo)設(shè)備將由diag-device來(lái)決定。

  • bootblk

OBP程序找到引導(dǎo)設(shè)備后,就直接將引導(dǎo)設(shè)備上所存儲(chǔ)的bootblk調(diào)入內(nèi)存進(jìn)行執(zhí)行,如果該引導(dǎo)塊不存在或者已經(jīng)損壞,系統(tǒng)將無(wú)法完成boot,Solaris 8會(huì)返回一條信息,The file just loaded can not to be executed。這說(shuō)明需要重新創(chuàng)建bootblk,方法非常簡(jiǎn)單,用光驅(qū)引導(dǎo)系統(tǒng),將原盤(pán)系統(tǒng)根mount起來(lái),使用installboot命令來(lái)重新生成bootblk

  • ufsboot:

執(zhí)行完bootblk后系統(tǒng)將執(zhí)行第二個(gè)程序/platform/`arch –k`/ufsboot ,該程序?qū)?/span>UNIXkernelp_w_picpath文件調(diào)入內(nèi)存,如果該文件損壞的話,系統(tǒng)將無(wú)法繼續(xù)引導(dǎo),返回一條類(lèi)似的信息,a bootlbk:Can’t find the boot program。

  • kernel: 

系統(tǒng)的影像p_w_picpath文件調(diào)用和運(yùn)行,在32位和64位系統(tǒng)將調(diào)用不同的文件,32位系統(tǒng)將涉及以下兩個(gè)文件:

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

2/kernel/genunix

64位系統(tǒng)將涉及以下兩個(gè)文件

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

2. /kernel/genunix

kernelp_w_picpath文件調(diào)用進(jìn)內(nèi)存并作進(jìn)一步的初始化,而且將加載各種模塊,使用ufsboot讀取各文件,在mount根系統(tǒng)之前將所需模塊全部調(diào)用進(jìn)內(nèi)存。在這點(diǎn),ufsboot不在起作用,而kernel將使用自己的驅(qū)動(dòng),此時(shí)如果根文件系統(tǒng)存在問(wèn)題,系統(tǒng)將無(wú)法繼續(xù)引導(dǎo)。

  • /etc/system:

/etc/system文件將由kernel從根系統(tǒng)從讀取,該文件定制了系統(tǒng)參數(shù):

以下是幾種定制系統(tǒng)參數(shù)的option:

    • moddir: 用來(lái)指定和改變系統(tǒng)kernel模塊的路徑

    • forceload: 強(qiáng)制將系kernel模塊調(diào)用進(jìn)OS

    • exclude:用以執(zhí)行一個(gè)特定的系統(tǒng)模塊

    • rootfs:用以指定系統(tǒng)根系統(tǒng)類(lèi)型,ufs文件系統(tǒng)為缺省值

    • rootdev: 指定根系統(tǒng)設(shè)備物理路徑

    • set: 設(shè)置kernel可調(diào)節(jié)的系統(tǒng)參數(shù)

如果需要修改/etc/system文件,強(qiáng)烈建議先做拷貝然后再編輯,否則該文件錯(cuò)誤嚴(yán)重的情況下將導(dǎo)致系統(tǒng)無(wú)法完成boot,而有了備份,那么在系統(tǒng)引導(dǎo)時(shí)候可以使用-a的boot option來(lái)進(jìn)行選擇/etc/system.bak來(lái)引導(dǎo)系統(tǒng),如果沒(méi)有做備份就必須使用boot cdrom –s的方式將系統(tǒng)根系統(tǒng)mount起來(lái)再手工修改錯(cuò)誤的/etc/system文件。

  • kernel initialized

kernel按照系統(tǒng)文件參數(shù)完成所有的module的調(diào)用后,首先創(chuàng)建系統(tǒng)的第一進(jìn)程sched,其進(jìn)程號(hào)為0,而該進(jìn)程有時(shí)候被叫做“swapper”。

  • init: 

init進(jìn)程是第二個(gè)被創(chuàng)建的,該進(jìn)程創(chuàng)建后讀取/etc/inittab文件和/etc/default/init文件,這兩個(gè)文件對(duì)系統(tǒng)的定制作了一些規(guī)定,比如說(shuō)系統(tǒng)的缺省運(yùn)行級(jí)別,系統(tǒng)時(shí)區(qū)和語(yǔ)言環(huán)境等等,該進(jìn)程是系統(tǒng)以后所有進(jìn)程的父進(jìn)程。

  • rc scripts: 

init進(jìn)程創(chuàng)建以后,系統(tǒng)就根據(jù)/etc/inittab文件中指定的運(yùn)行級(jí)別來(lái)執(zhí)行相關(guān)的啟動(dòng)腳本,所有的啟動(dòng)rc腳本都存放在/etc/rc#.d目錄下,不同級(jí)別執(zhí)行不同的腳本以啟動(dòng)與級(jí)別相對(duì)應(yīng)的進(jìn)程。需要注意的是/etc/rc#.d目錄下的腳本都將被執(zhí)行,首先執(zhí)行K打頭的腳本,然后執(zhí)行S打頭的腳本,并安裝ASCII碼的順序執(zhí)行。

以下是我在豆丁發(fā)布的該文檔全文,請(qǐng)幫我刷一刷,這樣我能賺點(diǎn)豆元,就可以多下點(diǎn)文檔了:
http://www.docin.com/p-550964558.html

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI