CentOS 5.0系統啟動流程

注:CentOS系統5.x,6.x和7.x的啟動流程不同,所以本文僅討論CentOS 5.x的啟動流程。

1. POST加電自檢

服務器在開機之后首先會先進行硬件的檢測,在開機界面我們可能會看到檢測硬盤,cpu或raid卡等信息,此界面即硬件自檢界面。

2. BIOS引導

BIOS(BootSequence)用于通過指定的引導裝置引導系統啟動。

3. Bootloader(MBR)

在所有可以引導系統啟動的介質都會存在引導啟動程序,即MBR。當然現在也可能會有UEFI引導啟動的系統,此處只討論MBR引導啟動方式。

  1. MBR為于硬盤0柱面0扇區的前446字節,隨后的64字節為分區表信息和分區標識位。

CentOS 5.0系統啟動流程
此處即為系統引導盤的前512字節,這512字節如果被破壞的話系統將無法啟動。

  1. BootLoader分為多種類型,如LiLo,grub等,其中CentOS 系統采用的為grub。 

    • grub程序為于/boot/grub/目錄下

CentOS 5.0系統啟動流程
其中存放有stage1,stage2,grub.conf等信息。

  • stage1存放的是MBR的備份信息,如下:

CentOS 5.0系統啟動流程

  • grub.conf即開機引導啟動的菜單,其內容如下,用戶也可以自己定義:

CentOS 5.0系統啟動流程

  • grub啟動系統分為多個階段,首先會通過grub.conf文件尋找內核和initrd文件引導系統,然后內核通過initrd文件加載硬盤的根文件系統。

4./sbin/init

/sbin/init為系統的第一個進程,內核加載完畢之后會只讀掛載rootfs,然后尋找/sbin/init,然后內核啟動階段結束,轉由用戶空間啟動階段。

CentOS 5.0系統啟動流程

5./etc/inittab

系統啟動之后會運行/etc/inittab文件,此文件定義如下信息:

  • 系統默認運行級別;
  • 執行/etc/rc.d/rc.sysinit腳本進行系統初始化;
  • 關閉對應級別下需要停止的服務,以k*開頭,啟動對應級別下需要運行的服務,以S*開頭;
  • 通過mingetty加載指定的tty;
  • 加載圖形終端;
  • 定義ctrl+alt+del是否可以重啟系統;
  • 定義系統斷電和電力恢復的動作; 
    其中/etc/rc.d/rc.sysinit定義如下內容:
  • 設置主機名;
  • 設置歡迎信息;
  • 激活udev和selinux;
  • 掛載/etc/fstab文件中定義的所有文件系統;
  • 檢測根文件系統,并以讀寫方式重新掛載根文件系統;
  • 設置系統時鐘;
  • 根據/etc/sysctl.conf文件設置內核參數;
  • 激活lvm及軟raid設備;
  • 激活各swap設備;
  • 加載額外設備的驅動程序;
  • 清理等操作;

6. 詳解系統服務加載過程:

系統所有的服務都存放于/etc/init.d/目錄下,然而在/etc/rc.d/存放多個rc#.d命名的目錄,這些目錄定義的就是對應的運行級別下所有需要停止和啟動的服務:

CentOS 5.0系統啟動流程
以上為3級別下需要啟動和停止的服務,可以看到所有的服務都是以軟連接的形式存在的。 
以軟連接存在原因:

  • 所有服務腳本都存放在/etc/init.d/目錄下
  • 所有服務腳本都有一個共同過的特性,腳本開頭必須定義如下兩行信息: 
    #chkconfig 運行級別 啟動優先級 停止優先級 
    description:***** 
    如atd服務的腳本:

CentOS 5.0系統啟動流程

  • 此類腳本收chkconfig管理,當執行以下指定命令之后會在相應rc#.d目錄下創建指定的以K*或S*開頭的腳本軟連接,系統就是通過加載這些腳本的軟連接啟動服務: 
    chkconfig –add 腳本名 #添加服務 
    chkconfig –del 腳本名 #刪除服務 
    chkconfig –level 運行級別 on|off #定義指定服務在指定級別下是否運行 
    chkconfig –list #列出所有服務信息

以上便是CentOS 5.x的啟動流程總結。

原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/75515

(0)
王子豪王子豪
上一篇 2017-05-14
下一篇 2017-05-14

相關推薦

  • 第七周 N21 總有刁民想害朕

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;        mke2fs -t ext4 /dev/sdb5 -b 2048 -m 2 -L "MYDATA&quot…

    Linux干貨 2016-08-08
  • Linux系統終端類型

    引言 終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。在早期計算機系統中,由于計算機主機昂貴,因此一個主機一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成,在個人計算機時代,個人計算機可以運行稱為終端仿真器的程序來模仿一個終端的工作。 &…

    Linux干貨 2016-10-19
  • Centos6.5基于SSL密碼認證部署ELK(Elasticsearch+Logstash+kibana)

    1       簡介 本章我們來介紹Centos6.5基于SSL密碼認證部署ELK(Elasticsearch 1.4.4+Logstash 1.4.2+kibana3),同時為大家介紹如何集合如上組件來收集日志,本章的日志收集主要為大家介紹SYSTEM日志收集. 集中化日志收集主要應用場景是在同一…

    Linux干貨 2015-06-18
  • 編譯安裝Apache

    實驗環境:CentOS 6 安裝包版本:httpd-2.2.29.tar.bz2 一、安裝前準備     (1)、獲取httpd-2.2.29.tar.bz2安裝包     (2)、準備開發工具,安裝相應的包組 yum groupinstall -y&nbsp…

    Linux干貨 2016-08-24
  • 自定義命令別名及引用結果

    自定義命令別名及引用結果 alias alias命令用來設置指令的別名。我們可以使用該命令可以將一些較長的命令進行簡化。 語法 alias(選項)(參數) 選項 -p:打印已經設置的命令別名。 參數 命令別名設置:定義命令別名,格式為“命令別名=‘實際命令’” 實例 顯示已設置的別名 [root@localhost ~]# alias alias cp=’c…

    Linux干貨 2018-03-11
  • Linux之任務計劃 crontab

    Linux之任務計劃    用過windows的同學應該都知道在控制面板中有一個“任務計劃”選項,我們可以通過向導設置讓計算機在某個時間點或者開機時運行某個腳本或者批處理等等,方便我們的日常管理監視工作;同樣在Linux系統中,如果我們想在開機時就運行某個操作,可以直接將命令寫入/etc/rc.local中,該操作就會在機器開機時運行;如…

    Linux干貨 2015-05-18
欧美性久久久久