Linux的開機啟動流程

2021-06-13 16:11:52 字數 1589 閱讀 1764

linux

的開機啟動流程

《鳥哥的

linux

私房菜之基礎篇》學習筆記(一

)1.載入 bios(basicinput output system) 的硬體資訊與進行自我測試,並依據設定取得第乙個可開機的裝置;

2.讀取並執行第乙個開機裝置內mbr(masterbootrecord,主引導分割槽)的 bootloader (亦即是 grub,spfdisk 等程式);

重點說明一下linux中最主流的bootloader :grub

由於mbr是硬碟的第乙個扇區內的乙個資料塊,其整個大小不能滿足bootloader程式**和設定資料的需求,所以linux將bootloader的程式**執行與設定值載入分成兩個階段:

a.stage1:執行bootloader主程式

b.stage2:主程式載入配置檔案

其中grub的配置檔案是/boot/grub/menu.lst,可以對其進行配置.

3.依據 bootloader 的設定載入 kernel,kernel 會開始偵測硬體與載入驅動程式;

bootloader

載入完核心後,由於驅動程式常被編譯成核心模組,放置於/lib/modules/$(uname-r)/kernel/中,這些模組必須要根目錄被掛載時才能夠被讀取,但是如果核心本身不具備磁碟的驅動程式時,當然無法掛載根目錄,也就沒有辦法取得驅動程式.此時bootloader

會載入/boot/initrd(虛擬檔案系統)到記憶體中,然後這個檔案會被解壓縮並**成乙個根目錄,且此**在記憶體中的檔案系統能夠提供乙個可執行的程式,通過該程式來載入啟動過程中所需要的核心模組.

4.在硬體驅動成功後,kernel會主動呼叫 init程式,而 init會取得 run-level資訊;

/sbin/init

通過配置檔案/etc/inittab取得run-level資訊.

5.init 執行 /etc/rc.d/rc.sysinit檔案來準備軟體執行的作業環境(如網路、時區等);

init通過/etc/rc.d/rc.sysinit這個指令碼進行系統的初始化工作.

6.init 執行 run-level的各個服務之啟動 (script方式);

啟動run-level所對應的系統服務,各個不同的run-level服務啟動的shellscrips在/etc/rc.d/rcn中,其中的指令碼都是連線檔案,連線到standalone服務啟動的目錄/etc/init.d/.

7.init 執行 /etc/rc.d/rc.local檔案;

/etc/rc.d/rc.local是使用者自定義的開機啟動程式,使用者如果有想要在啟動時就進行的工作,可直接將它寫入/etc/rc.d/rc.local,那麼該工作就會在啟動的時候自動被載入;

8.init 執行終端機**程式 mingetty來啟動 login程式,等待使用者登入;

Linux 開機啟動流程

1.加電自檢 我們知道整個主機在開機的時候,第乙個被讀取的地方,就是 bios basic input output system 啦,這個 bios 裡面記錄了主機板的晶元組與相關的設定,例如 cpu 與介面裝置的溝通頻率啊 開機裝置的搜 尋順序啊 硬碟的大小與型別啊 系統時間啊 各周邊匯流排的是...

linux開機啟動流程

首先了解下硬碟的第乙個扇區 大小為512bytes 這個扇區主要記錄兩個重要資訊 1.mbr master boot record 主引導分割槽,大小為446bytes,可以安裝引導引導程式的地方。2.分割槽表 partition table 記錄硬碟分割槽資訊 1.執行bios程式,根據bios的...

簡述Linux開機啟動流程

計算機開機是乙個神秘的過程。我們只是按了開機鍵,就看到螢幕上的進度條或者一行行的輸出,直到我們到達登入介面。然而,計算機開機又是個異常脆弱的過程,我們滿心期望的登入介面可能並不會出現,而是乙個命令列或者錯誤資訊。了解計算機開機過程有助於我們修復開機可能出現的問題。最初始階段 當我們開啟計算機電源,計...