Centos 系統啓動流程

  前言:因爲centos7使用的是systemd初始化進程改動比較大,使用這裏主要介紹centos5和6的開機啓動流程。
先上一個大致的啓動流程圖
Centos 系統啓動流程
第一步:POST加電自檢
  加電自檢是BIOS功能的一部分,負責CPU,主板,內存等硬件的自檢工作。
第二步:BootLoader引導加載器
  它負責引導系統啓動,目前主流的linux都是用GRUB2引導程序,它負責找到內核文件,提供grub菜單。
第三步:加載內核文件
  通過上面引導的內核文件,來加載到內存中解壓縮,一共分爲四個步驟:

   1.探測可識別到的所有硬件設備。
   2.加載硬件驅動程序(它是藉助於ramdisk/ramfs加載的)
   3.以只讀的方式掛載文件系統
   4.運行用戶空間的第一個程序:/sbin/init

init程序初始化
  1.根據init的配置文件獲取到運行級別,並獲取系統初始化腳本的文件路徑(centos5的init文件爲/etc/inittab,centos6將/etc/inittab文件拆分爲多個文件)。
  2.讀取系統初始化腳本/etc/rc.d/rc.sysinit,並按照腳本內容執行。

  1. 設置主機名
  2. 設置歡迎信息
  3. 激活udev和selinux
  4. 掛載/etc/fstab文件中定義的文件系統
  5. 檢測根文件系統,並以讀寫方式重新掛載文件系統
  6. 設置系統時鐘
  7. 激活swap設置
  8. 根據/etc/sysctl.conf文件設置內核參數
  9. 激活lvm及software raid設備
  10. 加載額外設備的驅動程序
  11. 清理操作

  根據前面獲取到的運行級別,運行/etc/rc.d/rc腳本文件
/etc/rc.d/目錄下有幾個rc#.d(#號代表數字,也是運行級別)的文件,其目錄下的文件是連接文件,只向/etc/init.d/下的服務腳本文件,根據在/etc/inittab獲取的默認運行級別和/etc/rc#.d下的鏈接文件,來啓動和關閉系統的服務,想必現在也能聯想到了爲什麼不同級別下啓動的服務不相同,爲什麼有的服務開機啓動,有的卻關閉 /etc/rc#.d/下的鏈接文件以K或者S開頭,K表示開機要被停止的服務,S表示開機要被啓動的服務,而且服務腳本都會有一個優先級,

K:K##:##運行次序;數字越小,越先運行;數字越小的服務,通常爲依賴到別的服務
S:S##:##運行次序;數字越小,越先運行;數字越小的服務,通常爲被依賴到的服務
Centos 系統啓動流程

  在2345級別的/etc/rc#.d目錄下都會有一個rc.local文件,它鏈接到/etc/rc.d/rc.local,它並不是一個啓動文件,它其實是一個普通文件,如果你想開機做什麼操作可以寫到這個文件裏。
第四步:啓動終端程序
  這裏要看到底是什麼運行級別了,如果是圖形界面就直接進入圖形界面。
第五步:用戶登錄
  到這裏系統就啓動完成了。
由於版本變化比較大,系統初始化進程命令的比較
init命令:
Centos 系統啓動流程
設置開機啓動的命令比較
Centos 系統啓動流程
Centos 系統啓動流程
再來一張系統啓動圖:
Centos 系統啓動流程
系統啓動詳細圖:
Centos 系統啓動流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章