Linux的引導過程與服務控制
Linux的引導過程與服務控制
Linux作業系統引導過程
引導過程總覽
開機自檢(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目標
排除啟動類故障
修復MBR扇區故障
故障原因
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 進入系統測試是否正常
修復GRUB引導故障
故障原因
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使用者密碼
故障原因
遺忘root使用者密碼
故障現象
1、無法進行需要root許可權的管理操作
2、若沒有其他可用賬號,將無法登入系統
解決思路
進入急救模式,重設密碼
相關實驗原理及命令
sh-4.2#chroot /mnt/sysimage 載入系統映象
bash-4.2#passwd root
new:
retry:
退出bash環境 exit
重啟 reboot
服務控制及切換執行級別
系統服務控制
systemctl 控制型別 服務名稱
控制型別
start:啟動
stop:停止
restart:重新啟動(先關閉服務再開啟服務,服務會中斷)
reload:重新載入(不會中斷服務)
status:檢視服務狀態
Linux系統的執行級別
檢視執行級別
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/服務的配置檔案
相關文章
- 引導過程與服務控制
- Linux 引導過程內幕Linux
- 服務登出後也能自啟的改造過程-(Linux服務)Linux
- Linux一個服務被訪問的過程Linux
- linux引導和服務Linux
- 控制linux啟動的服務Linux
- Caffeinated 6.828:實驗 1:PC 的引導過程
- NFS服務搭建過程NFS
- 計算機系統引導過程計算機
- 第十五單元-Linux系統中引導過程及修復Linux
- Dubbo中暴露服務的過程解析
- DUBBO服務啟動過程
- springboot引導上下文載入過程和配置載入過程Spring Boot
- Linux與Windows雙引導風險LinuxWindows
- 服務啟動過程效能波動的分析與解決方案
- Linunx系統引導過程及MBR/GRUB故障
- 阿里面試:dubbo的服務引用過程阿里面試
- Nginx部署HTTPS服務過程與異常處理實踐NginxHTTP
- 【SpringBoot】服務 Jar 包的啟動過程原理Spring BootJAR
- fastHttp服務端處理請求的過程ASTHTTP服務端
- React 服務端渲染原理及過程React服務端
- Dubbo服務消費者呼叫過程
- Kitty-Cloud服務搭建過程剖析Cloud
- Dubbo服務呼叫過程原始碼解析④原始碼
- sentine 流量控制與服務容錯
- Dubbo原始碼解析之服務引入過程原始碼
- Dubbo原始碼解析之服務呼叫過程原始碼
- SOFA 原始碼分析 —— 服務釋出過程原始碼
- Android高亮引導控制元件Android控制元件
- APP安全檢測 滲透測試APP服務介紹與過程APP
- HanLP封裝為web services服務的過程介紹HanLP封裝Web
- Android Binder原理(三)系統服務的註冊過程Android
- 服務執行過程中磁碟壞道引起的思考
- mysql儲存過程的引數MySql儲存過程
- 服務API版本控制設計與實踐API
- Express 原始碼分析1-(服務啟動和請求服務過程)Express原始碼
- 【IT服務】運維工程師服務過程中如何更好面對客戶運維工程師
- Dubbo原始碼解析之服務匯出過程原始碼