CentOS6啟動流程

CentOS 6 啟動流程 | root密碼重置 | 添加系統服務

一、CentOS 6 啟動流程:

    1)POST加電自檢

        Power-On-Self-Test,主板在接通電源后,系統首先由BIOS程序來對對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測。

        自檢中如發現有錯誤,將按兩種情況處理:對于嚴重故障則停機,對于非嚴重故障則給出提示或聲音報警信號,等待用戶處理。

        主板上 ROM:保存了BIOS程序    RAM:保存各項參數設定

        BIOS按設定次序查找引導設備,第一個有引導程序的設備為本次啟動設備

    2)讀取 MBR

        讀取第一個啟動設備MBR中的bootloader(前446字節),CentOS 6為grub程序,bootloader空間有限僅保存了grub第一階段stage1。

    3)引導加載程序 GRUB

        stage1:存在于MBR前446字節中,加載stage1_5,stage2,initramfs*.img

        stage1_5:在MBR之后62個扇區中,保存了必要的文件系統驅動程序等,讓stage1能識別stage2所在分區上的文件系統;

        stage2:提供菜單交互接口,讓用戶以選項方式加載內核、改變參數、修改選項,獲取grub.conf以及menu.lst等文件的內容,可提供認證保護機制。

    4)加載內核

        自身初始化:

        探測可識別到的所有硬件設備

        加載硬件驅動程序(可能借助于ramdisk加載驅動)

    內核無法識別硬盤上各驅動程序所在的設備,借助已識別的boot分區中的initramfs-VERSION-RELEASE.img文件(一個壓縮的小型根目錄,包含啟動階段必須的驅動模塊,可執行文件和啟動腳本),

將其掛載為臨時根目錄,執行啟動腳本,加載真實文件系統以掛載真正的根目錄并切換根目錄。

        以只讀方式掛載根文件系統

        運行用戶空間的第一個應用程序:/sbin/init

    5)啟動 init

        內核加載完畢,運行init程序,系統啟動的控制權移交給init進程

        init進程是所有進程的父進程,它會讀取配置文件/etc/inittab,進行以下工作:

        1.執行系統初始化腳本(/etc/rc.d/rc.sysinit),對系統進行基本的配置,以讀寫方式掛載根文件系統及其它文件系統,進行運行級別的確定及相應服務的啟動;
        2.確定啟動后進入的運行級別,共7個,默認3,5;
        3.執行/etc/rc.d/rc,定義服務啟動的順序是先K后S,具體的每個運行級別的服務狀態是放在/etc/rc.d/rc#.d(#=0~6)目錄下,所有的文件均鏈接至/etc/init.d下的相應文件。
        4.有關key sequence的設置
        5.有關UPS的腳本定義
        6.啟動虛擬終端/sbin/mingetty 
        7.在運行級別5上運行X

    系統初始化:

   POST–>BootSequence(BIOS)–>Bootloader(MBR)–>kernel(ramdisk)–>rootfs–>/sbin/init

    在rc.loacl中添加自定義開機運行腳本:

        正常級別下,最后啟動的一個服務S99local沒有鏈接至/etc/init.d下的某腳本,而是鏈接至了/etc/rc.d/rc.local (/etc/rc.local)腳本;因此,不便或不需寫為服務腳本的程序期望能開機自動運行時,可直接放置于此腳本文件中。



二、root密碼重置

    1.進入單用戶模式

        開機時鍵入 e ,進入grub菜單頁面,鍵入 a,在kernel行尾添加1,s,S,sigle任意一個,即單用戶模式,回車啟動系統

    2.直接用passwd更改密碼

        進入命令行后直接鍵入passwd即可更改密碼


三、添加系統服務

    CentOS 6中系統服務腳本都放在/etc/init.d目錄下,當用戶使用service命令對某個服務進行操作時,實際上是調用了該目錄下的腳本,所以我們也可以添加自己的服務腳本。

    1.編寫服務腳本

        前三行基本格式:vi testsrv

            #!bin/bash

            #chkconfig: 35 91 09

            #description:testsrv..

    腳本第一行為shellbang

    第二行chkconfig后跟3個數,第1個數為需啟動的級別,35表運行級別為3或5時啟動;第2個數為啟動優先級,數字越大優先級越低,越在后面啟動;第3個數為關閉優先級,數字越小優先級越高,越先關閉;

    一般后兩個數之和為100,被依賴性不高的服務可以后啟動,后啟動的先關閉;后兩位若為一位數(0-9),應寫成08格式

    第三行為描述信息,可根據需要修改。

        服務腳本應能識別基本的參數 [ start|stop|restart|status ]

        將寫好的腳本放在/etc/init.d目錄下

    2.添加為系統服務

        chkconfig –add /etc/init.d/testsrv

        該命令將腳本添加為系統服務,讓chkconfig可以管理它,并在每個運行等級啟動服務(/etc/rc.d/rc#.d)目錄下創建對應符號鏈接K/S入口,K開頭表關閉,S開頭表啟動

    3.服務操作

        chkconfig –level 35 testsrv on    修改服務的默認啟動等級

        service testsrv restart    重啟服務

作業

1、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”

* * * * * /bin/cp /var/log/messages /logs/messages-`date +\%Y\%M\%d`

2、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中

* */2 * * * grep "^[SM]" /proc/meminfo >>/testdir/meminfo.txt

原創文章,作者:Jasper,如若轉載,請注明出處:http://www.www58058.com/44573

(0)
JasperJasper
上一篇 2016-09-08 18:55
下一篇 2016-09-08 18:55

相關推薦

  • N25-第二周博客作業

    1.linux上的文件管理命令:   cp命令:copy                 源文件;目標文件;  單源復制:cp [option]… [-T]  SOURCE DEST       &…

    Linux干貨 2016-12-12
  • 日志管理

    rsyslogd的相關介紹,journalctl的相關介紹和日志的轉儲

    2018-02-05
  • 使用ext_skel和phpize構建php5擴展

    首先聲明:我們要構建的是擴展或者模塊名為hello_module.該模塊提供一個方法:hello_word. 1、php環境的搭建 我們一般使用源碼包編譯安裝,而不是binary包安裝。因為使用PHP的二進制分發包安裝有些冒險,這些版本傾向于忽略./configure的兩個重要選項,它們在開發過程中很便利: 第一個–enable-debug。這個…

    Linux干貨 2015-05-28
  • 【N25第四周作業】grep

    文本處理工具: Linux上文本處理三劍客: grep, egrep, fgrep:文本過濾工具(模式:pattern)工具; grep:基本正則表達式,-E,-F egrep:擴展正則表達式, -G,-F grep:不支持正則表達式, sed:stream editor, 流編輯器;文本編輯工具; awk:…

    Linux干貨 2016-12-18
  • Linux—文本處理(查看,統計,排序,抽取,合并,grep,基本正則表達式)

    Linux的文本管理有著眾多的文本命令工具,這些工具基本可以滿足不同的文本處理要求,很是靈活,掌握文本管理命令對系統的維護是必備基礎技能。 1.文本查看命令:     (1)cat        語法:        cat [OPTION]… […

    Linux干貨 2016-08-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-10 09:57

    每周2, 4, 7:表示為 * * * * */2,4,7

欧美性久久久久