1. 程式人生 > >centos啟動流程

centos啟動流程

centos啟動流程

我們在使用linux操作系統的時候,我們只要按下開機鍵之後,剩下的就是等待,然後輸入用戶名和密碼就可以使用 Linux系統了,然而在從按下開機鍵到輸入用戶名和密碼之前。操作系統都做了什麽?下面就來講述一下centos在啟動的時候都做了哪些動作

cnetos6為例。詳解centos啟動流程

技術分享

POST --> Boot Sequence(BIOS) --> BootLoader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot -->/sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 設定運行級別

-->系統初始化腳本 --> 關閉或啟動對應級別下的服務 --> 啟動終端

一、POST開機自檢

實現POST的代碼是在主板上ROM芯片上,在開機的時候,POST會對硬件設備進行檢查。完成後會尋找具有與引導記錄的設備,並由引導設備來完成系統的順利啟動。

二、MBR引導

MBR(MasterBoot Record) MBR記錄一般是在磁盤 0 磁道 1 扇區,共512個字節。前446個字節是BootLoder,後 4*16 64 個字節是存放分區信息的,最後 2 個字節是校驗信息,一般是 55AA

三、GRUBGRand UnifiedBootloader

)、加載內核

就是MBR中的前446個字節,是Bootloader的一種,它的作用是選擇要啟動的內核,系統將linux/boot/grub/grub.conf的配置文件讀入到內存中,根據配置文件中的信息找到內核文就按和偽根文件,並將偽根文件加載到內存中,模擬出一個根系統,在進行加載內核。

四、啟動init程序

Init程序是centos第一進程。其他進程都是由此進程fork出來的,也就是說,init進程是其他進程的“祖先”。

init啟動啟動之後做的事情

1、讀取/etc/inittab文件來讀取默認級別

技術分享

2、執行初始化腳本/etc/rc.d/rc.sysinit來初始化腳本

腳本的作用如下:

  • 設置主機名

  • 設置歡迎信息

  • 激活udevselinux

  • 掛載/etc/fstab文件中定義的文件系統

  • 檢測根文件系統,並以讀寫方式重新掛載根文件系統

  • 設置系統時鐘

  • 激活swap設備

  • 根據/etc/sysctl.conf文件設置內核參數

  • 激活lvmsoftware raid設備

  • 加載額外設備的驅動程序

  • 清理操作

3、執行/etc/rc.d/rcX.d腳本

根據讀取的/etc/inittab文件中的登錄模式,會運行相對應的腳本,假設是5模式,會讀去/etc/rc.d/rc5.d下的所有腳本,來控制系統啟動時啟動或者關閉那些服務

技術分享

  • 這裏的腳本大致分為兩類,以S開頭的和以K開頭的腳本

  • S代表開機啟動的,K代表開機時不啟動

  • 每個文件的命名格式,例如S06iptables S表示開機啟動,06 表示啟動次序 iptables表示啟動的腳本名

這些腳本是否開機啟動,可以由chkconfig命令來管理

  • chkconfig –addSRV-SCRIPT 可以將自己將自己寫的一些腳本放/etc/rc.d/rc.init.d中,讓此命令統一管理

  • chkconfig --del SRV-SCRIPT 將服務刪除,意思就是服務不由chkconfig這種機制來管理

  • chkconfig SRV_SCRIPT {on|off} 設置服務開機是否自啟動,默認管理的級別是2345.

  • --level 2345 等,指定默認級別,可以與其他選項一起使用

4、執行/etc/rc.d/rc.local腳本,此腳本是啟動過程中最後啟動的一個腳本。

最後會執行/bin/login登錄用戶。至此系統提東過程完成。

在對系統啟動流程有了大致了解之後,為了更深入的理解,下面就做一些來加深理解

實驗1 刪除/boot/initramfs-2.6.32-696.el6.x86_64.img文件

刪除文件是用偽根系統,是用來掛載根來找內核文件來啟動程序的,如果刪除以後將導致系統無法啟動,所以在系統重啟會出現以下界面:

技術分享

修復方法:

1.、進入救援模式

技術分享

技術分享

2、生成偽根系統

技術分享

實驗二、LVM情況下,刪除/etc/fstab文件和/boot下的文件

修復過程

1、進入救援模式

由於刪除了/etc/fstab文件,在進入救援模式的時候將導致系統的根無法掛載到/mnt/sysimages

技術分享

2、進入救援模式將掛載根文件,在救援模式下,邏輯卷處於禁用技術分享

3激活邏輯卷

技術分享

4、重新掛載跟並編輯 /etc/fstab文件

技術分享

5、重新進入救援模式,切根

技術分享

6掛載光盤,重新安裝kernel

7、安裝grub

技術分享

8、在/boot/grub下編輯grub.conf文件

技術分享

未完待續~


centos啟動流程