RHEL 5基礎篇 了解系統的引導過程

2021-06-22 23:57:18 字數 3221 閱讀 9062

了解系統的引導程式

linux作業系統的引導過程一般包括以下幾個階段:開機自檢、mbr引導、grub選單、載入linux核心、init程序初始化。

其中inti程序初始化過程涉及的操作最多,也不好理解。

如下下圖:引導過總覽

1、開機自檢

伺服器主機開機後,將根據主機板的bios中的設定對cpu、記憶體、顯示卡、鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移交系統控制權,大多數時候會移交給本機硬碟。

2、mbr引導

當從本機硬碟中啟動系統時,首先根據硬碟的第乙個扇區中的mbr的設定,將系統控制權傳遞給包好作業系統的引導檔案的分割槽。

3、grub選單

對於linux系統來說,grub算是使用最為廣泛的多系統引導器程式了。系統控制權移交給grub選單以後,將會顯示啟動選單提供給使用者選擇,並根據所選項載入linux核心檔案,然後將系統控制權移交給核心。

4、載入linux核心

linux核心是乙個預先編譯好的特殊二級制檔案,介入各種硬體資源一系統程式之間,負責資源分配與排程。核心接過系統控制權之後,將完全掌控整個linux作業系統的執行過程,預設核心在「/boot/」下。

5、init程序初始化

當核心接過系統的控制權之後,它首先將系統中的「/sbin/init」程式載入執行。init程序負責完成一系列的系統初始化過程,包括:讀取配置檔案「inittab」,根據配置內容首先負責執行初始化指令碼檔案「/etc/rc.d/rc.sysinit」,接著通過指令碼檔案「/etc/rc.d/rc」控制開機啟動的服務,最後執行終端程式「/sbin/mingetty」,等待使用者登入。

通過上述引導過程可以看出,決定系統初始化過程的關鍵在於init程序及其配置檔案「/etc/inittab」。在「inittab」配置檔案中記錄了系統啟動後執行那些服務,以及系統預設的執行級別。init程序是系統執行的第乙個程序,所以它是所有程序的父程序,對應的pid號總是「1」。(pid每個程序的身份標記,在系統中是唯一的)

管理「inittab」配置檔案

inittab檔案位於「/etc」下,是init程式的配置檔案。當init程式執行後,將按照「/etc/inittab」檔案指定的配置一次啟動系統中對應的指令碼和程式。

如下:使用「grep」命令過濾掉注釋和空行的inittab配置檔案。

在「/etc/inittab」檔案中。除了以「#」號開頭的注釋資訊和空行以外,每一行都視為一條有效的配置記錄。每條記錄都有四個字段,使用「:」好分割。格式如下:

標記:執行級別:動作型別:程式或指令碼

1)標記字段:標記字段可以由1~4個字元組成,用於區別其他行的配置,在inittab檔案中不可以出現標記相同的配置。

2)執行級別字段

0:關機狀態,使用該級別時將會關閉主機。

1:單使用者模式。(不用密碼登陸系統,多用於維護)

2:字元介面的多使用者模式。(不支援網路)

3:字元介面的完整多使用者模式,大多數伺服器主機執行在此級別。

4:未分配使用(保留)。

5:圖形介面多使用者模式,提供了圖形桌面操作環境。

6:重新啟動,使用該級別時將會重啟主機。

可使用「runlevel」命令檢視當前系統執行的級別,使用「init *」切換到任意級別。

4)動作型別字段

initdefault:設定初始化系統後預設進入的執行級別。

sysinit:設定系統初始化的操作指令碼。

wait:init程序等待該行配置所對應的指令碼操作完成後,再繼續執行其他操作。

ctrlaltdel:設定當使用者按下「ctrl+alt+delete」組合鍵後的操作。

powe***il:設定當系統受到斷電訊號時採取何種操作。(使用不間斷電源)

powerokwait:設定當系統受到恢復供電訊號時採取何種操作。

respawn:一旦該行配置所對應的程序被終止,則重新啟動該程序。

5)程式或指令碼字段:此欄位用於指定該行配置所對應的實際操作,可以是具體的命令,指令碼程式等。

rc.sysinit指令碼

該指令碼位於「/etc/rc.d/rc.sysinit」,是init程序所呼叫的系統初始化指令碼。此指令碼程式主要完成包括設定網路,主機名,載入檔案系統,設定時鐘,檢測檔案系統等一系列初始化工作。

rc指令碼檔案

rc指令碼同樣由init程序進行呼叫,檔案位於「/etc/rc.d/rc」。rc指令碼通過使用不同的級別引數,分別載入及終止不同的系統服務,進入到相應的系統執行級別。如下:檢視inittab檔案中「rc」指令碼的行。

在「/etc/rc.d/rc0.d/」~「/etc/rc.d/rc6.d/」目錄中,儲存了一些特殊的符號鏈結,rc指令碼根據這些目錄下的鏈結檔案呼叫對應的服務控制程式,進行啟動或終止相關程式的操作。在這些目錄中的鏈結檔案具有以下規律:檔名以s或k開頭,(s表示開啟服務,k表示終止服務)中間是數字序號,最後是系統中的服務本命:所鏈結的原始服務指令碼位於「/etc/rc.d/init.d/」目錄中。如下:檢視「/etc/rc.d/rc」中的檔案。

rc.local指令碼檔案

rc.local指令碼是乙個額外的啟動控制檔案,位於「/etc/rc.d/rc.local」,由rc指令碼在最後時進行載入。rc.local指令碼用於管理員自行設定開機啟動任務,執行級別「2-5」。如下:使用「vi /etc/rc.d/rc.local」命令在rc.local檔案末行新增一行執行語句。(執行語句的含義是:每次開機自動開啟ftp服務)

mingetty指令碼

mingetty指令碼位於「/sbin/mingetty」,在系統中「tty1」~「tty6」等終端都是「/sbin/mingetty」程式提供服務的。

如下:對應的初始化操作也是在inittab檔案中設定的。

RHEL 5基礎篇 系統設定及基本操作

系統設定及基本操作 在linux 作業系統中,使用者能夠通過不同的介面完成各種計算機和管理任務。根據介面的外觀和操作特點不同,通常可分為圖形介面 命令列介面。圖形介面 linux系統的圖形介面由一系列視窗化的應用程式組成,其中包括使用者登入介面,桌面任務管理 資源管理器等各種應用程式,共同構成一套完...

RHEL 5基礎篇 管理系統計畫任務

系統計畫任務管理 在linux系統中,除了使用者即時執行的命令操作以外,還可以配置在制定的時間,指定的日期執行預先計畫好的系統管理任務。rhel5系統預設安裝了at vixie cron軟體包,通過atd和crond這兩個系統服務實現一次性和週期性計畫任務功能,並分別通過at和crontab命令進行...

RHEL 5基礎篇 管理使用者和組

管理使用者和組 賬號概述 1 使用者賬號 超級使用者 root使用者是linux系統中預設的超級使用者,對於本機擁有至高無上的許可權。普通使用者 普通使用者賬號需要由root使用者或其它管理員建立,擁有的許可權受到一定的限制,一般普通使用者在自己的宿主目錄擁有完整的許可權。程式使用者 在安裝linu...