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

2021-08-07 10:04:38 字數 2823 閱讀 9010

一、linux組成

linux: kernel+rootfs

kernel: 程序管理、記憶體管理、網路管理、驅動程式、檔案系統、安全功能

rootfs:程式和glibc

庫:函式集合, function, 呼叫介面(標頭檔案負責描述)過程呼叫:procedure,無返回值函式呼叫:function

程式:二進位制執行檔案

核心設計流派:

單核心(monolithic kernel):linux把所有功能整合於同乙個程式

微核心(micro kernel):windows, solaris每種功能使用乙個單獨子系統實現

二、核心

linux核心特點:

(1)支援模組化:.ko(核心物件)如:檔案系統,硬體驅動,網路協議等

(2)支援核心模組的動態裝載和解除安裝

組成部分:

(1)核心檔案:/boot/vmlinuz-version-release

(2)ramdisk:輔助的偽根系統

centos 5: /boot/initrd-version-release.img

centos 6,7: /boot/initramfs-version-release.img (只放與啟動有關的驅動檔案)

(3)模組檔案:/lib/modules/version-release

三、系統啟動流程

1、流程詳解

(1)載入bios的硬體資訊,獲取第乙個啟動裝置

(2)讀取第乙個啟動裝置mbr的引導引導程式(grub)的啟動資訊

(3)載入核心作業系統的核心資訊,核心開始解壓縮,並嘗試驅動所有的硬體裝置

(4)核心執行init程式,並獲取預設的執行資訊

(5)init程式執行/etc/rc.d/rc.sysinit檔案

(6)啟動核心的外掛程式模組

(7)init執行執行的各個批處理檔案(scripts)

(8)init執行/etc/rc.d/rc.local

(9)執行/bin/login程式,等待使用者登入

(10)登入之後開始以shell控制主機

(2)過程解釋

post:power-on-self-test,加電自檢,是bios功能的乙個主要部分。負責完成對cpu、主機板、記憶體、硬碟子系統、顯示子系統、串並行介面、鍵盤、cd-rom光碟機等硬體情況的檢測。

rom:bios,basic input and output system,儲存著有關計算機系統最重要的基本輸入輸出程式,系統資訊設定、開機加電自檢程式和系統啟動自舉程式等。

ram:cmos互補金屬氧化物半導體,儲存各項引數的設定按次序查詢引導裝置,第乙個有引導程式的裝置為本次啟動裝置。

bootloader: 引導載入器,引導程式 windows: ntloader,僅是啟動os

linux:功能豐富,提供選單,允許使用者選擇要啟動系統或不同的核心版本;把使用者選定的核心裝載到記憶體中的特定空間中,解壓、展開,並把系統控制權移交給核心

核心版本:

lilo:linux loader

grub: grand unified bootloader

grub 0.x: grub legacy, grub2

四、啟動檔案詳解

1、ramdisk (啟動時認為自己是根)

核心中的特性之一:使用緩衝和快取來加速對磁碟上的檔案訪問,並載入相應的硬體驅動。

ramdisk相對於ramfs提高了啟動速度,直接從檔案系統中讀取,而不再是磁碟中讀取。

2、工具程式(mkinitrd, dracut)

如果誤刪除initramfs-version.img,可以使用工具程式恢復。
示例:

生成的這個配置檔案必須跟系統grub.cfg下檔案裡面的名字對應:

centos6中:

centos7中:

示例:

刪除initramfs-version.img檔案,如何恢復?

(1)模擬這個檔案誤刪除

(2)進入救援模式

首先我們要用光碟引導,進入救援模式。

(3)重新啟動,驗證。

小結:

系統初始化:

post –> bootsequence (bios) –> bootloader(mbr) –> kernel(ramdisk) –> rootfs(唯讀) – > init(systemd)

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