首頁 > 軟體

關於CentOS6的啟動流程

2020-06-16 17:13:06

1.按下開機按鈕,電腦的主機板通電,電腦開始加電自檢(POST,Power On and Self Test),測試主機的硬體是否滿足開機的要求.

2.載入主機板上的BIOS(Base Input/Output System,基本輸入輸出系統),BIOS會載入使用者設定的第一個可開機裝置.,這裡我們只說硬碟的載入.

可以按下鍵盤上的Esc或者是F2或者是Del鍵,可以調整開機裝置,這個鍵依據每個主機板的不同而不同.

3.BIOS載入硬碟的第一個分割區的第一個磁區內的內容,也叫做MBR(Master Boot Record,主開機記錄).

MBR只有512byte大小,由三部分組成:主開機記錄,硬碟分割區表和硬碟有效標誌,其中主開機記錄占用446byte,硬碟分割區表佔用64byte,硬碟有效標誌佔用2byte,通常為55AA.

4.由MBR來載入CentOS系統的開機系統管理程式GRUB(GRand Unitifed Bootloader),也就是/boot/grub/grub.conf檔案.grub.conf**這個檔案的內容如下:

#指定預設載入第一個系統,如果沒有這一項,使用者不選擇的話,系統預設會一直停在這裡
default=0 
#開機選單顯示的時間,不建議設定太長時間              
timeout=5
#開機選單顯示時的背景圖,解析度為640*480               
splashimage=(hd0,0)/grub/splash.xpm.gz 
#這一項為預設隱藏選單,可以省略       
hiddenmenu 
#顯示的開機選單               
title CentOS 6 (2.6.32-642.el6.x86_64)
    #指定系統所在的硬碟的第一個分割區         
    root (hd0,0)        
    kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=234a19e9-96c4-4710-af9b-536fdefbe875 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us  rhgb quiet
        #指明核心kernel的地址,這裡的根檔案系統為/boot這個分割區,後面接的是開機時核心載入的引數
        #ro指定開機過程中,以ro(ready only)方式載入根檔案系統
        #root=UUID=234a19e9-96c4-4710-af9b-536fdefbe875為系統的真正的根,這裡是用硬碟分割區的UUID號指定的 
        #rd_NO_LUKS 的意思是說系統上禁用會被initrd或init指令碼自動掛載的加密裝置
        #LANG=en_US.UTF-8指定系統所用的語言 
        #rd_NO_LVM為系統不啟用LVM邏輯卷
        #rd_NO_MD 選項為系統禁用軟RAID裝置
        #SYSFONT=latarcyrheb-sun16選項為系統開機時所用的字型
        #KEYBOARDTYPE=pc選項為指定鍵盤的型別
        #KEYTABLE=us選項為指定美式鍵盤
        #rd_NO_DM選項為不啟用硬RAID
        #rhgb選項為不顯示開機的畫面
        #quiet選項指定系統開機過程中載入的各種資訊不顯示出來
    #指明initramfs.img檔案的地址,這裡預設的根系統為/boot分割區
    initrd /initramfs-2.6.32-642.el6.x86_64.img

5.依據GRUB中的資訊,載入CentOS6系統的核心到記憶體中,並把核心解壓縮.

6.核心初始化完成後,會載入initramfs.img這個虛擬的檔案系統,並根據initramfs.img提供的各種驅動探測載入主機上所有的硬體裝置,然後以唯讀的方式掛載根檔案系統.

7.執行/sbin/init程式,讀取系統的/etc/inittab檔案,取得系統的執行級別,同時執行/etc/rc.d/rc.sysinit程式,初始化系統的各種資訊,比如:

讀取主機名hostname,
依據/etc/issue檔案讀取系統的歡迎資訊
啟用udev和selinux
檢測根檔案系統,並根據/etc/fstab檔案來以讀寫方式重新掛載根檔案系統
設定系統時鐘
啟用swap分割區
根據/etc/sysctl.conf檔案設定核心引數
啟用lvm及software raid裝置
載入額外裝置的驅動程式

8.根據系統的執行級別,執行/etc/rc.d/rc#.d/下的各種檔案,這裡所有的檔案都是/etc/rc.d/init.d/目錄下檔案的軟連結

這個資料夾下面的程式都是以K和S開頭的,基中
以K開頭的檔案是在系統開機過程中要被執行的服務,K後面跟的數位表示的是服務的執行次序;數位越小,越先執行;數位越小的服務,通常都會依賴到別的服務,
以S開關的服務則表示的是系統在關機或是切換執行級別時要結束的服務,S後面跟的數位表示的是服務結束的次序;數位越小,越先被結束;數位越小的服務,通常為被依賴到的服務

9.正常級別下,前面的程式執行完畢後, 最後一個S99local的程式指向/etc/rc.d/rc.local這個指令碼,使用者可以在這個指令碼裡可以寫入自己不方便或是不需寫入的系統服務指令碼.

10.執行/bin/login程式,進入登入狀態,等待使用者登入

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-06/144470.htm


IT145.com E-mail:sddin#qq.com