centos的啟動流程總體順序如下(以centos6為例):
post –> boot sequence –> bootloader(mbr) –> kernel –> 載入rootfs –> switchroot –> /sbin/init –> (配置檔案:/etc/inittab,/etc/init/*.conf) –>根據init配置檔案設定預設執行級別 –> 執行系統初始化指令碼/etc/rc.d/rc.sysinit,完成系統初始化 –> 開啟或關閉使用者選定的對應級別下所對應的服務 –> 啟動終端,列印登陸提示符。
1。post加電自檢
主要實現的功能是檢測各個外圍硬體裝置是否存在而且能夠正常執行起來,實現這一自檢功能的是固化在主機板上的rom(主要代表是cmos)晶元上的bios程式;
2。boot sequence(選擇啟動裝置以載入mbr)
主要實現的功能是選擇要啟動的硬體裝置,選擇了之後就可讀取這個裝置上位於mbr裡頭的bootloader了。這一步的實現是這樣的:根據bios中對啟動順序的設定,bios自己會依次掃瞄各個引導裝置,然後第乙個被掃瞄到的具有引導引導程式(bootloader)的裝置就被定位要啟動的引導裝置。
3。載入bootloader(位於mbr中)
bootloader要實現的功能就是提供乙個選單給使用者,讓使用者選擇要啟動的系統或不同的核心版本,然後把使用者選擇的核心版本載入到ram中的特定空間,接著在ram中解壓,展開,而後把系統控制權移交給核心,即完成把核心載入到記憶體空間中。grub是bootloader中的一種。
4。kernel自身初始化
kernel在得到系統的控制權後,首先要進行自身初始化。分為四步:
第一:探測可識別的所有硬體裝置
第二:載入硬體驅動程式(有可能會借助於randisk載入驅動)
第三:以唯讀方式掛載根檔案系統
第四:執行使用者空間的第乙個應用程式:/sbin/init
注意:ramdisk和核心一起由bootloader一同載入到記憶體當中的,這個檔案是在第一次安裝完系統後,根據各個不同的硬體介面的驅動組裝打包起來的。為什麼要載入這個偽檔案系統呢?是因為在系統進行初始化第二步,載入的驅動檔案在/boot/中,由於根還沒有掛載,所以是訪問不了的。因此就出現了ramdisk,提供乙個偽檔案系統,這個檔案系統中就包括了各驅動程式。
5。init管理使用者空間服務程序
init可以理解為是核心派來管理使用者空間的使者。init這個初始化程式會跟據其配置檔案執行一系列操作。雖然centos5,6,7的init配置檔案各不相同,但總體的啟動流程是不變的。
/sbin/init –>根據init配置檔案設定預設執行級別 –> 執行系統初始化指令碼/etc/rc.d/rc/sysinit,完成系統初始化 –> 關閉或啟動使用者選定的預設執行級別所對應的服務 –> 啟動終端,列印登陸提示符
摘自:
Centos7開機啟動過程
centos 7引導順序 uefi或bios初始化,執行post開機自檢 可擴充套件韌體介面負責加電自檢 post 聯絡作業系統以及提供連線作業系統與硬體的介面。選擇啟動裝置 引導裝載程式,centos7是grub2 載入裝載程式的配置檔案 etc grub.d etc default grub b...
CentOS 開機優化
近日,在vmware上安裝centos 4.6,發現有如下問題 chkconfig level 345 kudzu off 主機器的ip位址 windows中,用ipconfig查 虛擬機器中,配置 etc sysconfig network networking yes hostname loca...
Linux開機過程
linux初探之linux啟動 基礎 linux作業系統現在廣泛應用於各種伺服器。它的啟動總共可以分為9個步驟。第一步 bios自檢 也稱上電自檢 post,power on self test 指計算機系統 接通電源,自動執行主機板coms晶元 固化的程式 bios程式 的行為,包括對cpu 系統...