CentOS系統(tǒng)如何啟動流程?CentOS系統(tǒng)啟動流程的圖文教程

當我們按下開機鍵后,系統(tǒng)背后的秘密我們是否了解呢?這里,我?guī)Т蠹姨剿饕幌耹inux系統(tǒng)開機背后的秘密。
1.加電自檢
主板在接通電源后,系統(tǒng)首先由POST程序來對內部各個設備進行檢查,自檢中如發(fā)現(xiàn)有錯誤,將按兩種情況處理:對于嚴重故障(致命性故障)則停機,此時由于各種初始化操作還沒完成,不能給出任何提示或信號;對于非嚴重故障則給出提示或聲音報警信號,等待用戶處理。
2.BIOS啟動引導階段
自檢通過之后,按次序查找各引導設備,第一個有引導程序的設備即為本次啟動要用到的設備。一般電腦是按"F2"或"Del"鍵等等進入BIOS,在里面我們可以調整硬盤的啟動順序。
找到第一個有引導程序的設備后,BIOS會找到設備中的MBR,讀取其中的Bootloader
3.GRUP引導階段
這時候就可以看到我們的Centos系統(tǒng)了,但是一般都不需要操作,會自動啟動系統(tǒng)。其實我們也可以自己手動啟動系統(tǒng)的
3.1 手動在grub命令行接口啟動系統(tǒng):
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
3.2 grub的命令行接口:
e: 編輯模式,用于編輯菜單;
c: 命令模式,交互式接口;
help: 獲取幫助列表
help KEYWORD: 詳細幫助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#) 設定grup的根設備
kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數(shù);
例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的內核提供額外文件的ramdisk;
boot: 引導啟動選定的內核;
3.3 配置文件:/boot/grub/grub.conf
配置項:
default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始;
timeout=#:指定菜單項等待選項選擇的時長;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;
hiddenmenu:隱藏菜單;
password [--md5] STRING: 菜單編輯認證;
title TITLE:定義菜單項“標題”, 可出現(xiàn)多次;用來引導多個內核或者操作系統(tǒng)
root (hd#,#):grub查找stage2及kernel文件所在設備分區(qū);為grub的“根”;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核
initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;
password [--md5] STRING: 啟動選定的內核或操作系統(tǒng)時進行認證
4.加載內核階段
內核會自身初始化:
探測可識別到的所有硬件設備;
加載硬件驅動程序;(有可能會借助于ramdisk加載驅動)
以只讀方式掛載根文件系統(tǒng);
運行用戶空間的第一個應用程序:/sbin/init
5.init初始化階段
內核加載完畢,會運行init程序,init進程起來后,系統(tǒng)啟動的控制權移交給init進程
/sbin/init進程是所有進程的父進程,當init起來之后,它首先會讀取配置文件/etc/inittab,進行以下工作:
1.執(zhí)行系統(tǒng)初始化腳本(/etc/rc.d/rc.sysinit),對系統(tǒng)進行基本的配置,以讀寫方式掛載根文件系統(tǒng)及其它文件系統(tǒng),到此系統(tǒng)基本算運行起來了,后面需要進行運行級別的確定及相應服務的啟動;
2.確定啟動后進入的運行級別;
3.執(zhí)行/etc/rc.d/rc,該文件定義了服務啟動的順序是先K后S,而具體的每個運行級別的服務狀態(tài)是放在/etc/rc.d/rcn.d(n=0~6)目錄下,所有的文件均鏈接至/etc/init.d下的相應文件。
4.有關key sequence的設置
5.有關UPS的腳本定義
6.啟動虛擬終端/sbin/mingetty
7.在運行級別5上運行X
配置文件:/etc/inittab
每行定義一種action以及與之對應的process
id:runlevels:action:process
id:一個任務的標識符;
runlevels:在哪些級別啟動此任務;#,###,可以為空,表示所有級別;
action:在什么條件下啟動此任務;
process:任務;(腳本或程序)
action:
wait:等待切換至此任務所在的級別時執(zhí)行一次;
respawn:一旦此任務終止,就自動重新啟動之;
initdefault:設定默認運行級別;此時,process省略;
sysinit:設定系統(tǒng)初始化方式,此處一般為指定/etc/rc.d/rc.sysinit腳本;
K*:要停止的服務;K##*,優(yōu)先級,數(shù)字越小,越是優(yōu)先關閉;依賴的服務先關閉,而后關閉被依賴的;
S*:要啟動的服務;S##*,優(yōu)先級,數(shù)字越小,越是優(yōu)先啟動;被依賴的服務先啟動,而依賴的服務后啟動;
chkconfig命令:管控/etc/init.d/每個服務腳本在各級別下的啟動或關閉狀態(tài);
查看:chkconfig --list [name]
添加:chkconfig --add name
刪除:chkconfig --del name
修改指定的鏈接類型:
chkconfig [--level LEVELS] name <on|off|reset>
--level LEVELS:指定要控制的級別;默認為2345;
init命令:
級別切換:init #
級別查看:who -r
注:
正常級別下,最后啟動的一個服務S99local沒有鏈接至/etc/init.d下的某腳本,而是鏈接至了/etc/rc.d/rc.local (/etc/rc.local)腳本;因此,不便或不需寫為服務腳本的程序期望能開機自動運行時,直接放置于此腳本文件中即可。
相關文章
CentOS上SSH客戶端PAC Manager的安裝流程講解
SSH即Secure Shell協(xié)議的縮寫,一般被人們用作遠程服務器登錄,Linux下在這里我們推薦PAC Manager,下面我們就一起來看一下在CentOS上SSH客戶端PAC Manager的安裝流程講解2016-06-21CentOS6.x上部署Docker容器環(huán)境的全流程攻略
docker-io是Docker應用程序的安裝包,在CentOS中我們可以使用yum來取得并安裝,下面我們就詳細來看CentOS6.x上部署Docker容器環(huán)境的全流程攻略:2016-06-17怎么在CentOS安裝solr 4.10.3呢 Solr詳細安裝教程
那么怎么在CentOS安裝solr 4.10.3呢?在安裝的過程中還有哪里需要大家注意的呢?需要的朋友一起看看吧2016-05-13詳解在CentOS中安裝配置FTP服務器軟件VSFTP的流程
這篇文章主要介紹了在CentOS中安裝配置FTP服務器軟件VSFTP的流程,配置方法同樣適用于其他系統(tǒng)下的操作借鑒,需要的朋友可以參考下2016-03-21- 安裝完成Centos7之后,配置了IP地址,如果重啟電腦,發(fā)現(xiàn)網(wǎng)絡服務并沒有啟動起來,那么,如何讓Centos7網(wǎng)絡自動啟動呢?下面小編就為大家?guī)鞢entOS7設置網(wǎng)絡自動啟動的方2016-12-01
- 最近一些朋友說不知道centos7如何添加開機啟動服務/腳本;很苦惱!下面小編將會給大家?guī)韈entos7添加開機啟動服務/腳本的方法;有需要的朋友可以過來看看2016-11-28
- 有些朋友還不知道如何更改centos7的默認啟動為命令界面?下面小編就為大家?guī)砀腸entos 7 的默認啟動為命令界面的方法;一起去看看吧2016-11-27
centos6新加硬盤的格式化 掛載 開機啟動設置 中文PDF版
本文檔主要講述的是centos6新加硬盤的格式化 掛載 開機啟動設置;希望對大家的學習會有幫助;感興趣的朋友可以過來看看2016-10-14- 這篇文章主要簡單介紹了CentOS的開機啟動過程及設置啟動時間的方法,幫助了解包括加載內核等等在內的系統(tǒng)運行步驟,需要的朋友可以參考下2015-11-05
CentOS7 增加tomcat 啟動、停止(使用systemctl進行配置)
這篇文章主要介紹了CentOS7 增加tomcat 啟動、停止(使用systemctl進行配置),需要的朋友可以參考下2015-11-02