引導過程與服務控制
學習內容
- 引導過程
- 排除啓動類故障
- 服務空氣及切換運行級別
- 優化啓動過程
系統引導是操作系統運行的開始,在用戶能夠正常登錄到系統之前,Linux 操作系統的
引導過程將完成一系列的初始化任務,並加載必要的程序和命令終端,爲用戶登錄做好準備。
本節將對 Linux 操作系統的引導過程做簡單介紹。引導過程總覽
Linux 操作系統的引導過程一般包括以下幾個階段:開機自檢、MBR 引導、GRUB 菜單、加載 Linux 內核、init 進程初始化。
init進程
- 由Linux內核加載運行 /sbin/init程序
- 是系統中第一個進程
- PID(進程標記)號永遠爲1
Systemd單元類型
單元類型 | 擴展名 | 說明 |
---|---|---|
Service | .service | 描述一個系統服務 |
Socket | .socket | 描述一個進程間通信的套接字 |
Device | .device | 描述一個內核識別的設備文件 |
Mount | .mount | 描述一個文件系統的掛載點 |
Automount | .automount | 描述一個文件系統的自動掛載點 |
Swap | .swap | 描述一個內存交換設備或交換文件 |
Path | .path | 描述一個文件系統中文件或目錄 |
Timer | .timer | 描述一個定時器(用於實現類似cron的調度任務) |
Snapshot | .snapshot | 用於保存一個systemd的狀態 |
Scope | .scope | 使用systemd的總線接口以編程的方式創建外部進程 |
Slice | .slice | 描述居於cgroup的一組通過層次組織的管理系統進程 |
Target | .target | 描述一組systemd的單元 |
運行級別 | Systemd的target | 說明 |
---|---|---|
0 | target | 關機狀態,使用該級別時將會關閉主機 |
1 | rescue.target | 單用戶模式,不需要密碼驗證即可登錄系統,多用於系統維護 |
2 | multi-usr.target | 用於定義/域特定運行級別。默認等同於3 |
3 | multi-usr.target | 字符界面的完整多用戶模式,大多數服務器主機運行再次級別 |
4 | multi-usr.target | 用於定義/域特定運行級別。默認等同於3 |
5 | graphical.target | 圖形界面的多用戶模式,提供了圖形桌面操作環境 |
6 | reboot.target | 重新啓動,使用該級別時將會重啓主機 |
修復MBR扇區故障
- 故障原因
- 病毒***等造成的破壞
- 不正確的分區操作、磁盤讀寫誤操作
- 故障現象
- 找不到引導程序,啓動中斷
- 無法加載操作系統,開機後黑屏
- 解決思路
- 應提前作好備份文件
- 以安裝光盤引導進入急救模式
- 從本分文件中恢復
實驗案例
一、實驗步驟
1.備份mbr引導扇區到其他磁盤
2.模擬破壞mbr引導扇區
3.引導鏡像急救模式進行mbr扇區恢復
此時備份完成。下面進行模擬破壞:
然後重啓:
發現無法重啓,引導代碼消失,繼續重啓,眼疾手快!按esc
此時創建新的掛載點,將備份的文件掛載上去。恢復成功!
修復GRUB引導故障
- 故障原因
- MBR中的GRUB引導程序遭到破壞
- grub.conf文件丟失、引導配置有誤
- 故障現象
- 系統引導停滯,顯示“grub>”提示符
- 解決思路
- 嘗試手動輸入引導命令
- 進入急救模式,重寫或者從備份中恢復grub.conf
-
向MRB扇區中重建grub程序
實驗案例
grub菜單恢復實驗步驟
1.引導急救模式,加載系統鏡像
2.重新建立sda分區
3.重新構建grub菜單功能配置文件注:grub 啓動菜單的背景文件
grub2 啓動菜單的配置文件
此時模擬破壞:
重啓
同樣還是重啓時及時按esc
加載系統鏡像
chroot /mnt/sysimage/
重新構建sda
grub2-install /dev/sda
重新構建grub菜單配置文件
grub2-mkconfig -o /boot/grub2/grub2.cfg
4.退出bash環境 Exit
5.重啓Reboot
遺忘root用戶密碼
- 故障原因
- 遺忘root用戶的密碼
- 故障現象
- 無法進行需要root權限的管理操作
- 若沒有其他可用賬號,將無法登錄系統
- 解決思路
-
進入急救模式,重設密碼
實驗案例
-
- 破解centos7 root 登錄密碼
1.加載鏡像系統
2.修改密碼
輸入密碼
改完之後,重啓:
直接登錄即可系統服務控制
- 常用方式:systemctl 控制類型 服務名稱
- 控制類型:
srart: 啓動
stop:停止
restart:重新啓動
seload:重新加載
status:重看服務狀態Linux系統的運行級別
-
查看運行級別
- Runlevel命令
- Systemctl工具
- 臨時切換運行級別
- Init命令
-
Systemctl工具
實驗案例
在這裏,
systemctl isolate graphical.target=init5
systemctl isolate multi-user.target=init3
-
優化啓動過程
- 系統服務管理工具
- Ntsysv工具
- 提供一個交互式、可視化窗口
- 可以再字符終端運行
- 便於集中管理多個服務
- Systemctl工具
- 不提供交互式、可視化窗口
- 管理單個服務效率更高
系統服務的啓動和控制
- ntsysv系統服務管理工具
- ntsysv --level級別列表
查看系統服務的啓動狀態
- sysemctl is-enabled 服務名稱
設置系統服務的啓動狀態
- systemctl enable/disable 服務名稱
-
按空格取消 按空格開啓
本章總結
-
- Linux操作系統引導過程
- Linux系統服務控制
- 運行級別切換
- 優化開機自動加載服務