CentOS系統啟動流程

2021-09-27 04:53:32 字數 1329 閱讀 5257

雖然知識很基礎,但是對於我們理解linux的工作機制是有幫助的。

因為在centos 5、centos 6以及centos 7使用的初始化程式init各不相同,雖然centos 6和centos 7也都有向後相容,但在工作機制上還是存在一些差異,所以以下主要介紹centos 5/6系統啟動流程。

啟動流程圖:

主機板bios根據設定的引導裝置(可按f2進bios設定,不同型號主機板進bios按鍵不同)按次序查詢各引導裝置,第乙個有引導程式的裝置即為本次將啟動的裝置。

由於grub功能較多體積太大mbr存不下,所以grub有部分檔案是存放在磁碟分割槽上的。然而想要讀取磁碟分割槽上的grub檔案是需要分割槽的檔案系統驅動的,所以在系統安裝時grub程式會自動將分割槽所對應的檔案系統的驅動放置在mbr後空閒空間中。grub程式啟動時第一階段會載入bootloader,隨後第一點五階段將載入第二階段所在分割槽檔案系統的驅動,最後就可以載入第二階段完成引導程式啟動載入使用者所選擇的作業系統或核心。(centos5,6使用的是grbu0.x: grub legacy版本,而centos7則使用的是完全重構後的grub 1.x: grub2版本)

載入核心後核心會完成自解壓,並開始探測可識別的所有硬體,然後載入硬體驅動(核心中自帶的驅動,如果核心中沒有的驅動將借助ramdisk載入驅動)並以唯讀方式掛載根檔案系統,最後執行使用者空間的第乙個應用程式/sbin/init(centos 5為sysv: init centos 6為upstart: init centos 7為systemd)。

當init程式執行程序起來後,系統啟動的控制權將移交給init程序。然後init會去讀取/etc/inittab配置檔案,獲取到預設執行級別。

設定好執行級別後init將會執行系統初始化指令碼/etc/rc.d/rc.sysinit(centos 5),對系統進行基本的配置,以讀寫方式掛載根檔案系統及其它檔案系統。

之後init會執行/etc/rc.d/rc該檔案定義了服務啟動的順序和k開頭需要關閉的服務,s開頭需要啟動的服務,而具體的每個執行級別的服務狀態是放在/etc/rc.d/rcn.d(n=0~6)目錄下,所有的檔案均鏈結至/etc/init.d下的相應檔案。(正常級別下,最後啟動乙個服務s99local沒有鏈結至/etc/rc.d/init.d乙個服務指令碼,而是指向了/etc/rc.d/rc.local指令碼;因此,不便或不需寫為服務指令碼放置於/etc/rc.d/init.d/目錄,且又想開機時自動執行的命令,可直接放置於/etc/rc.d/rc.local檔案中)

在關閉對應執行級別下需要關閉的服務,啟動需要啟動服務後,啟動虛擬終端/sbin/mingetty(級別3)

CentOS系統啟動流程

centos 6啟動流程 post boot sequence bios boot loader mbr kernel ramdisk rootfs readonly switchroot sbin init etc inittab,etc init conf 設定預設執行級別 執行系統初始化指令碼...

CentOS系統啟動流程

centos6 post開機自檢 執行cmos中的bios程式,載入第乙個啟動磁碟的mbr中的bootloader 由bootloader讀取kernel 通過掛載臨時根目錄initramfs載入核心模組 驅動程式 然後解除安裝臨時根目錄,掛載真正的根目錄。啟動init程式 指定 etc initt...

CentOS系統啟動流程詳解(一)

一 linux組成 linux kernel rootfs kernel 程序管理 記憶體管理 網路管理 驅動程式 檔案系統 安全功能 rootfs 程式和glibc 庫 函式集合,function,呼叫介面 標頭檔案負責描述 過程呼叫 procedure,無返回值函式呼叫 function 程式 ...