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
每周2, 4, 7:表示為 * * * * */2,4,7