排除啟動類故障
服務控制及切換執行級別
優化啟動過程
開機自檢(bios)→mbr引導→grub選單→載入核心(kernel)→init程序初始化
init程序
1、由linux核心載入執行/sbin/init程式
2、init程序是系統中第乙個程序
3、init程序的pid(程序標記)號永遠是1
systemd
1、systemd是linux作業系統的一種init軟體
2、centos7中採用全新的systemd啟動方式,取代傳統的sysvinit
3、cenos7中執行的第乙個init程序是/lib/systemd/system
systemd單元型別
執行級別所對應的systemd目標
故障原因
1、病毒、木馬等造成的破壞
2、不正確的分割槽操作、磁碟讀寫誤讀寫
故障現象
1、找不到引導程式,啟動中斷
2、無法載入作業系統,開機後黑屏
解決思路
1、應提前做好備份檔案
2、以安裝光碟引導進入急救模式
3、從備份檔案中恢復
特別說明
mbr扇區存在第一塊硬碟空間裡,因此想要破壞mbr資料,只需要破壞第一塊硬碟空間裡的資料即可。
對第一塊硬碟備份時,注意備份磁碟空間不能小於第一塊硬碟的空間大小。
相關實驗原理及命令
故障原因:病毒、木馬等造成的破壞,不正確的分割槽操作,磁碟讀寫操作
故障現象:找不到引導程式,啟動中斷,無法載入作業系統,開機後黑屏
應對思路:應提前做好備份檔案,以安裝光碟引導進入緊急急救模式,重備份檔案中恢復
操作步驟模擬mbr扇區實驗
加一塊硬碟做實驗
進系統檢視磁碟
fdisk -l 檢視是否有sdb
mkfs -t ext4 /dev/sdb 格式化sdb
mount /dev/sdb/opt 掛載
1、備份mbr扇區資料
dd if =/dev/sda of=/opt/mbr.bar bs=512 count=1
2、模擬mbr扇區故障
dd if =/dev/zero of=/dev/sda bs=512 count=1
重啟後觀察系統是否有問題
出現 operating system not found
上述就是有故障了:mbr掛了
光碟引導,進入急救模式,提示操作
從備份檔案中恢復mbr扇區
步驟如下:
1、裝入光碟,在光碟引導介面選擇troubleshooting
2、進入troubleshooting選單 選擇rescue a centos system
3、進入引導可以按回車,或者等待
按1 在按回車進入sh-4.2#
4、急救模式下sdb的掛載
mkdir /sdd
mount /dev/sdb/sdd
cd /sdd查詢下該備份檔案是否存在
5、dd if=/sdd/mbr.bak of=/dev/sda count=1 bs=512
6、重啟reboot 進入系統測試是否正常
故障原因
1、mbr中的grub引導程式遭到破壞
2、grub.conf檔案丟失、引導配置有誤
故障現象
系統引導停滯,顯示「grub>」提示符
解決思路
1、嘗試手動輸入引導命令
2、進入急救模式,重寫或者從備份中恢復grub.conf
3、向mbr扇區中重建grub程式
相關實驗原理及命令
cd /boot/grub2 進入grub2
rm -rf grub.cfg 刪除grub2.cfg 模擬故障
init 6 重啟
出現故障,如下
grub>
###修復如下###
1、引導急救模式,載入系統映象
chroot /mnt/sysimage/
2、重新建立載入sda分割槽
grub2-install /dev/sda
3、重建構建grub選單配置檔案
grub2-mkconfig -o/boot/grub2/grub.cfg
4、退出bash環境
exit
5、重啟
reboot
故障原因
遺忘root使用者密碼
故障現象
1、無法進行需要root許可權的管理操作
2、若沒有其他可用賬號,將無法登入系統
解決思路
進入急救模式,重設密碼
相關實驗原理及命令
sh-4.2#chroot /mnt/sysimage 載入系統映象
bash-4.2#passwd root
new:
retry:
退出bash環境 exit
重啟 reboot
systemctl 控制型別 服務名稱
控制型別檢視執行級別
runlevel命令(只能檢視切換執行級別與當前執行級別)
systemctl工具(systemctl時能檢視預設的執行級別)
臨時切換執行級別
init命令(執行級別所對應的數字)
systemctl工具(命令引數是具體的target)
設定永久執行級別
檢視當前的執行級別
1、切換到命令列介面
systemctl isolate multi-user.target /graphical.target (相當於 init 3/5)
2、用runlevel檢視當前的執行級別
runlevel
5 3說明:5是前乙個執行級別 3是當前的執行級別
3、也可以用who -r命令
who -r
run-level 3 2020-04-07 16:44 last=5
run-level 是當前的執行級別
修改預設的執行級別:(set-default用來指定預設的執行級別)
systemctl set-default multi-user.target
提示資訊:removed /etc/systemd/stystem/default.target.
created symlink /etc/systemd/system/default.target→/usr/lib/systemd/system/multi-user.target.
或rm -f /etc/systemd/system/default.target
ln -sf /usr/lib/sysytemd/system/multi-user.target /etc/systemed/system/default.target
init 6/reboot
兩條命令功能相同,都要重啟才能生效
ntsysv工具
1、提供乙個互動式、視覺化視窗
2、可以在字元終端執行
3、便於集中管理多個服務
systemctl工具
1、不提供交換式、視覺化視窗
2、管理單個服務效率更高
ntsysv系統服務管理工具
ntsysv
ntsysv --level 級別列表
按照預設設定,只有當前執行級別會被配置。要配置不同的執行級別,使用「–level」選項來指定乙個或多個執行級別。
例如,命令「ntsysv --level 345」配置執行級別3、4和5
檢視系統服務的啟動狀態
systemctl is-enabled 服務名稱
設定系統服務的啟動狀態
systemctl enable/disable 服務名稱
補充:
systemctl start(stop/status/reload/restart) 服務
= service 服務 start(stop/status/reload/restart)
注意:systemctl或service 管理服務時,在/lib/systemd/system下面要有這個服務,service檔案或者在/etc/init.d/服務的配置檔案
引導過程與服務控制
單元型別 副檔名說明 service service 描述乙個系統服務 socket socket 描述乙個程序間通訊的套接字 device device 描述乙個核心識別的裝置檔案 mount mount 描述乙個檔案系統的掛載點 automount automount 描述乙個檔案系統的自動掛載...
引導過程與服務控制
二 系統初始化程序 三 systemd單元型別 四 執行級別所對應的systemd目標 五 修復mbr扇區故障 六 修復grub引導故障 七 修復故障的方法 伺服器主機開機以後,將根據主機板bios中的設定對cpu 記憶體 顯示卡 鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移交系統控制權,...
引導過程與服務控制
二 linux排除啟動類故障 2.1.5 mbr故障及修復的注意事項 2.2 修復grub引導故障 2.3 遺忘root使用者密碼 三 系統服務控制及切換執行級別 3.2 linux系統的執行系統 四 優化系統啟動 由linux核心載入執行 sbin init程式 init程序是系統中第乙個程序 i...