Linux/Centos7系統(tǒng)管理之引導(dǎo)過(guò)程與服務(wù)控制

Linux/Centos7系統(tǒng)管理之引導(dǎo)過(guò)程與服務(wù)控制Linux系統(tǒng)引導(dǎo)的過(guò)程解決常見的啟動(dòng)類故障控制Linux中的系統(tǒng)服務(wù)(核心)優(yōu)化Linux中的啟動(dòng)任務(wù)一、引導(dǎo)過(guò)程總覽(重要)——流程必要掌握開機(jī)自檢——BIOS(Basic Input/Output System),先加電,檢查硬件(CPU、內(nèi)存、顯卡、鍵盤等設(shè)備)是否沒(méi)有問(wèn)題,沒(méi)有問(wèn)題加載驅(qū)動(dòng)MBR引導(dǎo)——微代碼找啟動(dòng)盤
?
CPU首先讀取位于CMOS中的BIOS程序,按照BIOS中設(shè)定的啟動(dòng)次序(Boot Sequence)逐一查找可啟動(dòng)設(shè)備,找到可啟動(dòng)的設(shè)備后,去該設(shè)備的第一個(gè)扇區(qū)中讀取MBR(Master Boot Record,主引導(dǎo)記錄)。
?
MBR存在于可啟動(dòng)磁盤的0磁道0扇區(qū),占用512字節(jié),它主要用來(lái)告訴計(jì)算機(jī)從選定的可啟動(dòng)設(shè)備的哪個(gè)分區(qū)來(lái)加載引導(dǎo)加載程序(Boot loader),MBR中存在如下內(nèi)容:
?
?。?) Boot Loader 占用446字節(jié),存儲(chǔ)有操作系統(tǒng)(OS)相關(guān)信息,如操作系統(tǒng)名稱,操作系統(tǒng)內(nèi)核位置等,它的主要功能是加載內(nèi)核到內(nèi)存中運(yùn)行。
?
?。?) Partition Table 分區(qū)表,占用64字節(jié),每個(gè)主分區(qū)占用16字節(jié)(這就是為啥一塊硬盤只能有4個(gè)主分區(qū)(3)分區(qū)表有效性標(biāo)記占用2字節(jié),CPU將MBR讀取至內(nèi)存,運(yùn)行GRUB(Boot Loader常用的有GRUB和LILO兩種,現(xiàn)在常用的是GRUB),GRUB會(huì)把內(nèi)核加載到內(nèi)存去執(zhí)行。
?
如上所示,我們可查看/boot/grub2/grub.cfg文件的第100行的內(nèi)容,就能看到是在該配置文件中對(duì)內(nèi)核文件進(jìn)行操作了。
?
GRUB菜單——使用廣泛的多系統(tǒng)引導(dǎo)器程序,系統(tǒng)控制權(quán)傳遞給GRUB以后,將會(huì)顯示啟動(dòng)菜單提供給用戶選擇,根據(jù)選擇或者默認(rèn)項(xiàng)加載內(nèi)核文件,然后將系統(tǒng)控制權(quán)轉(zhuǎn)交給內(nèi)核。
?
加載內(nèi)核(kernel)——/boot目錄下,Linux內(nèi)核是預(yù)先編譯好的特殊二進(jìn)制文件,介于各種硬件資源和系統(tǒng)程序之間,負(fù)責(zé)資源分配與調(diào)度。
?
補(bǔ)充:下面的vmlinuz-3.10.0-693.el7.x86_64就是我們的內(nèi)核文件了。在/boot目錄下[root@lokott ~]# ll /boot |grep "vmlinuz*"-rwxr-xr-x. 1 root root ?5877760 10月 23 12:20 vmlinuz-0-rescue-f18b1b17cb2b477f8cb451fffad48550-rwxr-xr-x. 1 root root ?5877760 8月 ?23 2017 vmlinuz-3.10.0-693.el7.x86_64[root@lokott ~]# head -100 /boot/grub2/grub.cfg |tail -1linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=d0f8b702-0aa9-4857-9551-2e1283d2f5f9 ro crashkernel=auto rhgb quiet.UTF-8init進(jìn)程初始化——原來(lái)的緩存全部清空,加載必要進(jìn)程之后,加載外部的第三方進(jìn)程(應(yīng)用軟件)(延時(shí)啟動(dòng))內(nèi)核初始化作為PID1從initramfs執(zhí)行/sbin/init。在Centos7中將其復(fù)制為systemd,systemd啟動(dòng)initrd.target中的 所有單元,并且掛載根文件系統(tǒng)/sysroot1.1init進(jìn)程由Linux內(nèi)核加載運(yùn)行/sbin/init程序,是系統(tǒng)中的第一個(gè)進(jìn)程,PID號(hào)永遠(yuǎn)為1Systemd 單元類型
?
運(yùn)行級(jí)別所對(duì)應(yīng)的systemd目標(biāo)
?
其中.service?——/lib/sysytemd/system
?
文件存儲(chǔ)兩個(gè)部分——元信息(狀態(tài)的信息)和內(nèi)容===========================================================================================1.2修復(fù)MBR扇區(qū)故障1.故障原因
?
病毒、***等造成的破壞
?
不正確的分區(qū)操作、磁盤讀寫誤操作
?
2.故障現(xiàn)象
?
找不到引導(dǎo)程序、啟動(dòng)中斷
?
無(wú)法加載操作系統(tǒng),開機(jī)后黑屏
?
3.解決思路
?
提前做好備份文件
?
以安裝光盤引導(dǎo)進(jìn)入急救模式
?
從部分文件中恢復(fù)
?
實(shí)驗(yàn)一——模擬修復(fù)MBR扇區(qū)故障實(shí)驗(yàn)流程如下備份MBR扇區(qū)數(shù)據(jù)——加一塊硬盤做備份(一定需要先備份)(1)分區(qū),格式化,掛載
?
(2)備份mbr引導(dǎo)扇區(qū)到其它磁盤
?
備份=dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1 (/abc是另一塊磁盤的掛載點(diǎn))模擬故障
?
dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1重啟:reboot——> 啟用DHCP(找不到系統(tǒng)),從網(wǎng)上找有無(wú)可以加載的系統(tǒng),但是是找不到的修復(fù)之前需要光盤鏡像需要連接使用
?
加載系統(tǒng)鏡像文件中的急救模式
?
加載系統(tǒng)鏡像文件中的內(nèi)核界面
?
在讀條時(shí)按下ESC鍵(手速快點(diǎn))——選擇CD-ROM Drive——選擇Troubleshooting——選擇Rescue a Centos system(補(bǔ)充:當(dāng)然如果你的鏡像文件一直是連接狀態(tài)的話前面兩個(gè)步驟是可以省略的)4.把備份數(shù)據(jù)做恢復(fù)
exit、reboot、chroot、grub2-install、grub2-mkconfig、passwd、runlevel、ntsysv、systemctl、netstat等。主要是對(duì)系統(tǒng)啟動(dòng)引導(dǎo)過(guò)程中的一些問(wèn)題進(jìn)行解決,強(qiáng)制破解root密碼(實(shí)質(zhì)上是強(qiáng)行更換),最后講述的是服務(wù)控制命令操作和簡(jiǎn)單的一些優(yōu)化操作。
了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/