引導過程與服務控制
一、引導過程管理
1、引導過程
【1】開機硬件自檢(BIOS)
基本的自檢,檢測出第一個能夠開機引導系統的設備(光驅、硬盤、U盤),查找引導程序。
【2】MBR引導
引導設備放置在設備裏面的第一個扇區(MBR、512字節),MBR裏面會有GRUB引導程序,分區表,BIOS找到引導程序之後會啓動使其運行起來。
【3】GRUB菜單
Linux中的啓動運行程序,運行起來之後會讀取grub配置文件grub.conf,裏面有內核,設置等,讓引導程序加載內核和鏡像文件。
【4】加載內核(kernel)
在加載時把內核和鏡像文件都加載到內存裏面(這個是由kernel小程序完成的),完成之後有進行一次全面的硬件自檢,所有的均加載完畢之後內核把init進程運行起來。
【5】systemd進程或init進程初始化
它們是所有進程的父進程,負責整個環境的初始化。是系統的第一個進程,內核加載/sbin/init程序運行init進程,PID(進程標記號)永遠是1。完成就啓動系統。
(1)init進程:init是centos6之前初始化進程,加載並運行/sbin/init程序,進程號是“1”。
(2)systemd進程:systemd是centos7之後初始化進程,加載並運行/usr/lib/systemd/system程序,進程號是“1”
2、Upstart啓動方式
將初始化配置文件分散存放,響應不同的啓動事件,以事件爲基礎的啓動方式。
3、inittab文件的結構
【1】格式:id:runlevels:action:process
【2】runlevels—運行級別
4、排除啓動類故障
注:急救模式工作原理
光盤的操作系統在內存中運行,硬盤中壞的操作系統掛載到內存中的/mnt/sysimage目錄下,這個目錄相當於硬盤中的根目錄,這樣就能修改破壞的操作系統。
shell#chroot /mnt/sysimage/
【1】修復MBR扇區故障
(1)故障原因
病毒、木馬等造成的破壞;
不正確的分區操作、磁盤讀寫誤操作;
(2)故障現象
找不到引導程序,啓動中斷;
無法加載操作系統,開機後黑屏;
(3)解決思路
應提前做好備份文件;
以安裝光盤引導進入急救模式;
從備份文件中恢復;
(4)示例案列
1)掛載分區到某個文件下
2)備份MBR扇區數據(of=備份到路徑儘可能到其他磁盤,bs表示讀寫單位,count表示讀寫數量)
[root@localhost ~]# dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
[root@localhost ~]# ls /backup
sda.mbr.bak
注:dd命令比tar的備份更加強烈,tar包一般備份普通文件,透明的文件目錄等,dd可以備份不透明的文件(扇區等),看不見的目錄。
3)模擬MBR扇區故障(設備文件/dev/zero表示無限制產生0的程序文件)
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
[root@localhost ~]# init 6
4)重啓之後沒法找到系統,掛載光盤再次重啓電腦在讀條時候按鍵“ESC”選擇光盤啓動CD-ROE
5)從備份文件中恢復MBR扇區(備份路徑和備份到的路徑互換)
shell#mkdir /mbr
shell#mount /dev/sdb1 /mbr
shell#ls /mbr
sda.mbr.bak
shell#dd if=/mbr/sda.bak of=/dev/sda
shell#reboot
【2】修復GRUB引導故障
(1)故障原因
1)MBR中的GRUB引導程序遭到破壞
2)grub.conf文件丟失,引導有誤
(2)故障現象
系統引導停止,顯示“grub>”提示符
(3)解決思路
進入急救模式,重建grub程序
(4)案例說明
【1】查看gurb配置文件路徑
[root@localhost ~]# ls /boot/grub2
device.map fonts grub.cfg grubenv i386-pc locale
【2】模擬破壞,刪除配置文件
[root@localhost ~]# rm -rf /boot/grub2/grub.cfg
[root@localhost ~]# reboot
就會出現重寫grub菜單的界面
grub>
【3】掛載光盤再次重啓電腦在讀條時候按鍵“ESC”選擇光盤啓動CD-ROE
【4】troubeshooting
【5】rescue system
【6】選擇1coutiue回車進入shell終端
1)使用安裝光盤引導進入急救模式,若分區表並未被破壞,則急救模式將會找到硬盤中的Linux根分區,並將其掛載到光盤目錄結構中的/mnt/sysimage文件夾中。
shell#chroot /mnt/sysimage/
2)進入“bash-4.1#”的shell環境以後,執行“grub2-install /dev/sda”命令可以重新加載sda分區
bash-4.1#grub2-install /dev/sda
3)重新構建grub.conf配置文件即可
bash#grub2-mkconfig -o /boot/grub2/grub.cfg
bash#exit
shell#reboot
注:分區表保存在MBR扇區的第447~510字節中,MBR共有512字節,前446字節是主引導記錄,後64字節,每16字節爲一組,共四組是硬盤分區表。
【3】忘記root密碼故障
(1)故障原因
忘記root密碼
(2)故障現象
無法進行需要root權限的管理操作
若沒有其他可用賬號,將無法登錄系統
(3)解決思路
進入急救模式,重設密碼。
(4)案例說明
使用命令chroot /mnt/sysimage進入急救模式,重新改密碼就可以。
【1】掛載光盤再次重啓電腦在讀條時候按鍵“ESC”選擇光盤啓動CD-ROE
【2】troubeshooting
【3】rescue system
【4】選擇1coutiue回車進入shell終端
shell#chroot /mnt/sysimage/
bash#passwd root
passwd:
passwd again:
bash#exit
shell#reboot
二、服務控制及優化啓動過程
1、系統服務控制
【1】常用方式
Service 服務名稱 控制類型(我要對這個服務做什麼操作)
/etc/rc.d/init.d 服務名稱 控制類型
Systemctl 控制類型 服務名稱
【2】控制類型
Start:啓動、stop:停止、restart:重啓、reload:重新加載、status:查看服務狀態
【3】示例postfix服務
【4】reload與restart區別
Reload:重載配置文件,服務不停止重新加載配置文件生效,叫平滑過渡。相當於刷新
Restart:相當於停掉這個網頁,重新點進,要停掉服務。
2、Linux系統的運行級別
【1】查看運行級別:使用runlevel命令
【2】臨時切換運行級別:使用init命令結合0-6運行級別參數,如init 3。
3、優化啓動工具
系統服務選擇開啓還是關閉,應根據主機的實際功能需求來定。
【1】systemctl工具(常用)
語法:systemctl 控制類型 服務名稱
服務的配置文件:/usr/lib/systemd/system/NAME.service
三個部分組成:
unit定義數據單元
service服務的配置
install定義是否開機自啓
(1)啓用或停用
disable永久停用,enable永久啓用
(2)啓動或停止
Start啓動、stop停止、restart重啓、reload重新加載、status查看服務狀態
(3)查看服務啓動狀態
systemctl 【is-active|is-failed】 service
(4)屏蔽與取消屏蔽
systemctl 【mask|unmask】service
如,iptables(yum install iptables-services)和Firewalld互相沖突。
【1】ntsysv工具(*空格鍵,tab鍵OK)
(1)提供一個交互式、可視化窗口,可在字符界面運行,便於集中管理多個服務
(2)語法:ntsysv --level 級別(0–6)
【2】chkconfig工具
(1)不提供交互式可視化窗口,管理單個服務效率更好。
(2)語法:查看服務狀態chkconfig --list (服務名稱) 永久關閉:chkconfig --level 級別 服務名 on/off