標籤:linux開機流程、模組管理與loader
1.init處理系統初始化流程:
1)/etc/rc.d/rc.sysinit這個指令碼用來設定系統內容,具體為:
取得網路環境與主控件類型(讀取/etc/sysconfig/network取得主機名稱與預設閘道等網路環境)
測試與掛載記憶體裝置/proc及USB裝置/sys(除了掛載記憶體裝置/proc外,還會主動偵測系統上是否具有usb的裝置,若有則會註定載入usb的 驅動程式,並嘗試掛載usb的檔案系統)
決定是否啟動SELinux
啟動系統的隨機數產生器
設定終端機字形
設定顯示於開機過程中歡迎畫面
介面裝置的偵測與PnP(Plug and Play)參數的測試,根據核心在開機時偵測的結果(/proc/sys/kernel/modprobe)開始進行ide/scsi/網路/音效等介面裝置的偵測,以及利用已載入的核心模組進行PnP裝置的參數測試
使用者自訂模組的載入,使用者可以在/etc/sysconfig/modules/*.moudles加入自訂的模組,則此時會被載入到系統當中
載入核心相關的設定,系統會主動去讀取/etc/sysctl.conf這個檔案的設定值,使核心功能成為我們想要的樣子
設定主機與初始化電源管理模組(ACPI)
初始化軟體磁碟陣列:主要是透過/etc/mdadm.conf來設定好的
初始化LVM的檔案系統功能
以fsck檢驗磁碟檔案系統:會進行filesystem check
進行磁碟配額quota的轉換(非必要)
重新以可擦寫入模式掛載系統磁碟
啟動quota功能:所以我們不需要自動定義quotaon的動作
啟動系統虛擬隨機產生器
清除開機過程當中的臨時檔案
將開機相關資訊載入/var/log/dmesg檔案中
2.啟動系統服務與相關設定檔
載入核心讓整個系統準備接受指令來工作,再經過/etc/rc.d/rc.sysinit的系統模組與相關硬體資訊的初始化後,你的CentOS系統應該已經順利工作了。只是,我們還的要啟動系統所需的各項服務,這樣主機才能提供我們相關的網路或者是主機功能。
3./etc/inittab中的執行個體:“l5:5:wait:/etc/rc.d/rc 5”解讀:
1)透過外部第一號參數來取得想要執行的指令碼目錄。即由/etcrc.d/rc 5可以取得/etc/rc5.d/這個目錄來準備處理相關的指令碼程式
2)找到/etc/rc5.d/K??*開頭的檔案,並進行/etc/rc5.d/K??* stop
3)找到/etc/rc5.d/S??*開頭的檔案,並進行/etc/rc5.d/S??* start
/etc/rc5.d/S??*底下實際是一些連結檔,鏈到/etc/init.d/目錄下對應的服務程式
4.在完成預設runlevel指定的各項服務啟動後,就會執行/etc/rc.d/rc.local這個檔案用於使用者設定自己想要的開機後執行的程式或服務。
5.在完成了系統所有服務的啟動後,接下來Linux就會啟動終端機或者Xwindow來等待使用者登入。另外在/etc/inittab中“x:5:respawn:/etc/X11/prefdm -nodaemon”這句的意思是當後面的指令被終止(terminal)時,init會主動的重新啟動該項目,這就是為何我們登入tty1終端介面後,以exit離開後,系統還是會重新等待使用者輸入的原因。
本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1603743
linux開機流程、模組管理與Loader(續)