引導過程與服務控制技術點

2021-10-10 07:12:33 字數 4630 閱讀 3059

排除啟動類故障

服務控制及切換執行級別

優化啟動過程

開機自檢(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...