內(nèi)核引導(dǎo)
當(dāng)計(jì)算機(jī)打開電源后,首先是BIOS開機(jī)自檢织阅,按照BIOS中設(shè)置的啟動(dòng)設(shè)備(通常是硬盤)來啟動(dòng)。
操作系統(tǒng)接管硬件以后始藕,首先讀入 /boot 目錄下的內(nèi)核文件蒲稳。
運(yùn)行init
運(yùn)行級(jí)別
Linux允許為不同的場(chǎng)合,分配不同的開機(jī)啟動(dòng)程序伍派,這就叫做"運(yùn)行級(jí)別"(runlevel)江耀。也就是說,啟動(dòng)時(shí)根據(jù)"運(yùn)行級(jí)別"诉植,確定要運(yùn)行哪些程序祥国。
Linux系統(tǒng)有7個(gè)運(yùn)行級(jí)別(runlevel):
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0晾腔,否則不能正常啟動(dòng)
運(yùn)行級(jí)別1:?jiǎn)斡脩艄ぷ鳡顟B(tài)舌稀,root權(quán)限,用于系統(tǒng)維護(hù)灼擂,禁止遠(yuǎn)程登陸
運(yùn)行級(jí)別2:多用戶狀態(tài)(沒有NFS)
運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS)壁查,登陸后進(jìn)入控制臺(tái)命令行模式
運(yùn)行級(jí)別4:系統(tǒng)未使用,保留
運(yùn)行級(jí)別5:X11控制臺(tái)剔应,登陸后進(jìn)入圖形GUI模式
運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟睡腿,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)************
系統(tǒng)初始化
在init配置文件中峻贮,rc.sysinit是一個(gè)bash shell的腳本席怪,它主要是完成一些系統(tǒng)初始化的工作,rc.sysinit是每一個(gè)運(yùn)行級(jí)別都要首先運(yùn)行的重要腳本纤控。
它主要完成的工作有:激活交換分區(qū)挂捻,檢查磁盤,加載硬件模塊以及其它一些需要優(yōu)先執(zhí)行任務(wù)船万。
CentOS 6開機(jī)啟動(dòng)流程
分為五個(gè)階段:1)內(nèi)核的引導(dǎo)刻撒、2)運(yùn)行init、3)系統(tǒng)初始化耿导、4)建立終端声怔、5)用戶登錄系統(tǒng)
1.當(dāng)計(jì)算機(jī)打開電源后,首先是BIOS開機(jī)自檢碎节,按照BIOS中設(shè)置的啟動(dòng)設(shè)備(通常是硬盤)來啟動(dòng)捧搞。
操作系統(tǒng)接管硬件以后抵卫,首先讀入 /boot 目錄下的內(nèi)核文件狮荔。
2.運(yùn)行init
init 進(jìn)程是系統(tǒng)所有進(jìn)程的起點(diǎn)胎撇,沒有這個(gè)進(jìn)程,系統(tǒng)中任何進(jìn)程都不會(huì)啟動(dòng)殖氏。
init 程序首先是需要讀取配置文件 /etc/inittab晚树。
3.系統(tǒng)初始化
啟動(dòng)相應(yīng)的程序,比如設(shè)置主機(jī)名配備網(wǎng)絡(luò)雅采,裝載服務(wù)爵憎,加載/etc/init.d文件初始化操作系統(tǒng)。
4.建立終端
系統(tǒng)內(nèi)有六個(gè)終端婚瓜,只考慮遠(yuǎn)程終端即可
5.用戶登錄系統(tǒng)
加載完/etc/init.d配置文件初始化完系統(tǒng)就開始用戶登錄了宝鼓,接著就可以連接Xshell了。
總結(jié): 打開電源bash自檢---->加載內(nèi)核--->啟動(dòng)父進(jìn)程巴刻,啟動(dòng)時(shí)加載進(jìn)程級(jí)別愚铡,如果加載字符界面--->讀取/etc/init.d完成初始化工作--->加載用戶登錄程序--->用戶登錄
CentOS 7開機(jī)啟動(dòng)流程
1)按下電源、2)開機(jī)自檢(BIOS)胡陪、3)MBR引導(dǎo) 沥寥、4) GRUB、5)加載內(nèi)核
開啟電源
DIOS開機(jī)自檢
啟動(dòng)MBR引導(dǎo) 0頭0通道1扇區(qū)前446
GRUB選擇系統(tǒng)windos或linux
加載對(duì)應(yīng)系統(tǒng)內(nèi)核進(jìn)行啟動(dòng)柠座。(啟動(dòng)第一個(gè)父進(jìn)程sysremd)
讀取運(yùn)行級(jí)別(/etc/systemd/system/default.target)
初始化字符下的/usr/lib/systemd/system/sysinit.target
初始化系統(tǒng)邑雅、啟動(dòng)服務(wù),最后加載/usr/lib/systemd/system/getty.target建立登錄界面妈经,用戶通過連接登錄系統(tǒng)
Centos6 和 centos7區(qū)別
Linux 關(guān)機(jī)
關(guān)機(jī)的命令有 shutdown –h now halt poweroff 和 init 0 ,
重啟系統(tǒng)的命令有 shutdown –r now reboot init 6淮野。
linxu systemd
什么是systemd?
systemd即為system daemon守護(hù)進(jìn)程狂塘,systemd主要解決上文的問題而誕生录煤,systemd的目標(biāo)是,為系統(tǒng)的啟動(dòng)和管理提供一套完整的解決方案荞胡。
systemd的優(yōu)勢(shì)
1妈踊、最新系統(tǒng)都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)
2、Centos7支持開機(jī)并行啟動(dòng)服務(wù)泪漂,顯著提高開機(jī)啟動(dòng)效率廊营。
3、Centos7關(guān)機(jī)只關(guān)閉正在運(yùn)行的服務(wù)萝勤,而Centos6全部都關(guān)閉一次露筒。
4、Centos7服務(wù)的啟動(dòng)與停止不在使用腳本進(jìn)行管理敌卓,也就是/etc/init.d下不在有腳本慎式。
5、Centos7使用systemd解決原有模式缺陷,比如原有service不會(huì)關(guān)閉程序產(chǎn)生的子進(jìn)程瘪吏。
systemd相關(guān)配置文件系統(tǒng)啟動(dòng)服務(wù)
/usr/lib/systemd/system/ 啟動(dòng)腳本
/etc/systemd/system/ 類似6系統(tǒng)的/etc/rc.d/rcN.d
etc/systemd/system/multi-user.target.wants
查看當(dāng)前的運(yùn)行級(jí)別
systemctl get-default
multi-user.target
修改下次的啟動(dòng)運(yùn)行級(jí)別
systemctl set-default multi-user.target
systemd的常用命令
systemctl start nginx #開啟ngiix
systemctl stop nginx #關(guān)閉nginx
systemctl restart nginx #立即重啟nginx
systemctl reload nginx #平滑重啟nginx癣防,不立即重啟,等這個(gè)服務(wù)結(jié)束后執(zhí)行
systemctl staus nginx #查看服務(wù)運(yùn)行狀態(tài)
systemctl staus nginx -l 查看這個(gè)配置文件的錯(cuò)誤
systemctl enable nginx 開機(jī)自啟(下一次開機(jī)啟動(dòng)掌眠,與當(dāng)前狀態(tài)無(wú)關(guān))
[root@ZhaoJianHao-1 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
systemctl disable nginx關(guān)閉開機(jī)自啟蕾盯,下一次開機(jī)不啟動(dòng),與當(dāng)前狀態(tài)無(wú)關(guān)
[root@ZhaoJianHao-1 ~]# systemctl disable nginx
Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.service.
單用戶模式
首先能正常引導(dǎo)進(jìn)入系統(tǒng)
1)配置文件錯(cuò)誤導(dǎo)致無(wú)法啟動(dòng)
2)忘記root密碼(解決方法:快照或單用戶模式修改)
1.選擇第一個(gè)系統(tǒng)蓝丙,按e鍵進(jìn)編輯模式级遭,修改配置
2.在linux x16行 UTF-8后輸入enforing=0 init=/bin/bash 輸入完成ctrl+x進(jìn)入單用戶模式
進(jìn)入單用戶模式,詳細(xì)操作步驟:
1).默認(rèn)是只讀渺尘,重新掛載到/下挫鸽,指定讀和寫權(quán)限。
2).passwd root #修改root密碼
3). touch /.autorelabel 關(guān)閉SELINUX
4).輸入exec /sbin/init init重新引導(dǎo)系統(tǒng)
單用戶模式還可以解決--->配置文件錯(cuò)誤導(dǎo)致無(wú)法進(jìn)入系統(tǒng)vim /etc/selinux/config
救援模式
功能:系統(tǒng)無(wú)法正常進(jìn)入系統(tǒng) 鸥跟、沒有內(nèi)核掠兄、grub被修改、系統(tǒng)崩潰
沒有內(nèi)核文件锌雀,(系統(tǒng)無(wú)法加載蚂夕,無(wú)法進(jìn)入單用戶模式)只能使用救援模式
系統(tǒng)崩潰 : 要保留重要數(shù)據(jù)時(shí)
grup菜單出現(xiàn)問題,(裝錯(cuò)系統(tǒng)無(wú)法引導(dǎo)菜單)
當(dāng)系統(tǒng)壞了腋逆,無(wú)法登陸系統(tǒng)婿牍,但需要把里面的數(shù)據(jù)復(fù)制出來
步驟一、先掛載光盤惩歉,然后選擇光盤引導(dǎo)為第一位
步驟二等脂、進(jìn)入故障排除模式-->選擇第二項(xiàng)救援模式
選項(xiàng)一:安裝基本圖形模式
選項(xiàng)二:修復(fù)系統(tǒng)
選項(xiàng)三:內(nèi)存測(cè)試
選項(xiàng)四:啟動(dòng)本地驅(qū)動(dòng)
步驟三、掛載真實(shí)系統(tǒng)后撑蚌,發(fā)現(xiàn)數(shù)據(jù)都還存在
場(chǎng)景二上遥、修復(fù)MBR,主要出現(xiàn)在安裝雙系統(tǒng)時(shí)争涌,后安裝的系統(tǒng)把原來系統(tǒng)的MBR刪除了粉楚,需要修復(fù)。
步驟一亮垫、破壞硬盤的前446字節(jié)模软,模擬MBR引號(hào)損壞,會(huì)發(fā)現(xiàn)重啟無(wú)法啟動(dòng)系統(tǒng)
步驟二饮潦、重啟系統(tǒng)燃异,然后按照之前的操作進(jìn)入救援模式,然后分配一個(gè)shell終端继蜡,掛載真實(shí)的操作系統(tǒng)進(jìn)行修復(fù)
步驟二回俐、修復(fù)MBR引導(dǎo)逛腿,然后重啟連接服務(wù)器
場(chǎng)景三、Centos7誤刪除grub文件如何進(jìn)行修復(fù)仅颇。
步驟一鳄逾、模擬誤刪故障
步驟二、重啟系統(tǒng)灵莲,然后按照之前的操作進(jìn)入救援模式,然后分配一個(gè)shell終端殴俱,掛載真實(shí)的操作系統(tǒng)進(jìn)行修復(fù)
步驟三政冻、使用grub2-install、grub2-mkconfig恢復(fù)配置文件