详细图文演示——排除启动类故障以及Linux操作系统引导、运行级别和优化启动等相关知识
詳細圖文演示——排除啟動類故障以及Linux操作系統引導、運行級別和優化啟動等相關知識
- 一、Linux操作系統引導過程
- 1、開機自檢
- 2、MBR 引導
- 3、GRUB菜單
- 4、加載Linux內核
- 5、init進程初始化
- 6、init進程與Systemd
- 6.1、init進程
- 6.2、Systemd
- 6.2.1、Systemd單元類型
- 6.2.2、運行級別所對應的Systemd目標
- 二、排除啟動類故障
- 1、修復MBR扇區故障
- 1.1、故障原因
- 1.2、故障現象
- 1.3、解決思路
- 1.4、模擬故障示例
- 1.4.1、創建新硬盤,并格式化
- 1.4.2、備份MBR (扇區磁盤到其他磁盤)
- 1.4.3、模擬破壞MBR引導區
- 1.4.4、重啟,并進入急救模式
- 1.4.5、從備份文件中恢復MBR扇區數據
- 1.4.6、恢復成功,進入界面
- 2、修復GRUB引導故障
- 2.1、故障原因
- 2.2、故障現象
- 2.3、解決思路
- 2.3.1、方法一:手動輸入演示
- ①、查看grub.cfg文件內的內核名稱等信息
- ②、模擬故障
- ③、手動輸入引導命令
- ④、進入界面
- 2.3.2、方法二、進入急救模式,恢復GRUB引導程序
- ①、增加新硬盤,進行分區,格式化分區,并掛載到目錄
- ②、備份主引導記錄并模擬故障
- ③、進入急救模式,并恢復引導程序
- ④、恢復成功,進入界面
- 2.3.3、方法三、進入急救模式,重建GRUB菜單配置文件
- ①、刪除grub.cfg文件以模擬故障
- ②、進入急救模式下進行重建
- ③、重構成功,進入界面
- 3、遺忘root用戶密碼
- 3.1、故障原因
- 3.2、故障現象
- 3.3、解決思路
- 3.4、示例
- 進入急救模式更改密碼
- 三、系統服務控制
- 1、格式
- 2、常用控制類型
- 3、同作用服務
- 四、Linux系統的運行級別
- 1、查看運行級別
- 2、臨時切換運行級別
- 3、設置永久運行級別
- 五、優化啟動過程
- 1、優化工具
- 1.1、ntsysv工具
- 1.2、systemctl工具
- 2、系統服務的啟動與控制
- 2.1、ntsysv系統服務管理工具
- 2.2、systemctl工具
- 2.2.1、查看系統服務的開機自啟動狀態
- 2.2.2、設置系統服務的啟動狀態
- 六、永久修改主機名和查看主機名狀態
- 七、設置系統語言和查看當前系統語言
一、Linux操作系統引導過程
1、開機自檢
服務器主機開機以后,將根據主板BIOS中的設置對CPU、內存、顯卡、鍵盤等設備進行初步檢測,檢測成功后根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬盤。
總結:檢測出第一個能夠引導系統的設備,比如硬盤或者光驅
2、MBR 引導
當從本機硬盤中啟動系統時,首先根據硬盤第一個扇區中MBR (主引導記錄)的設置,將系統控制權傳遞給包含操作系統引導文件的分區;或者直接根據MBR記錄中的引導信息調用啟動菜單(如GRUB) 。
總結:運行放在MBR扇區里的啟動GRUB引導程序
3、GRUB菜單
對于Linux操作系統來說,GRUB (統一啟動加載器)是使用最為廣泛的多系統引導器程序。系統控制權傳遞給GRUB以后,將會顯示啟動菜單給用戶選擇,并根據所選項(或采用默認值)加載Linux內核文件,然后將系統控制權轉交給內核。
CentOS 7采用的是GRUB2啟動引導器。
總結:GRUB引導程序通過讀取GRUB配置文件/boot/grub2/grub.cfg,來獲取內核和鏡像文件系統的設置和路徑位置
4、加載Linux內核
Linux內核是一個預先編譯好的特殊二進制文件,介于各種硬件資源與系統程序之間,負責資源分配與調度。內核接過系統控制權以后,將完全掌控整個Linux操作系統的運行過程。
CentOS 7系統中,默認的內核文件位于"/boot/vmlinuz-3.10.0-514.e17.x86_64"
總結:把內核和鏡像文件系統加載到內存中
5、init進程初始化
為了完成進一步的系統引導過程,Linux內核首先將系統中的"/sbin/init"程序加載到內存中運行(運行中的程序稱為進程),init進程負責完成整個系統的初始化,最后等待用戶進行登錄。
總結:加載硬件驅動程序,內核把init進程加載到內存中運行
6、init進程與Systemd
6.1、init進程
- 由Linux內核加載運行/sbin/init程序
- init進程是系統中第一個進程,是所有進程的父進程
- init進程的PID (進程標記)號永遠為1
6.2、Systemd
- Systemd是Linux操作系統的一種init軟件
- CentOS7中采用全新的Systemd啟動方式,取代傳統的SysVinit
- CentOS7中運行的第一個init進程是/lib/systemd/systemd
- 傳統SysVinit依賴于串行執行Shell腳本啟動服務,導致效率低下,系統啟動速度較慢
- systemd能夠將更多的服務進程并行啟動,并且具有提供按需啟動服務的能力,使得啟動更少進程,從而提高系統啟動速度。
6.2.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的單元 |
6.2.2、運行級別所對應的Systemd目標
| 0 | target | 關機狀態,使用該級別時將會關閉主機 |
| 1 | rescue.target | 單用戶模式,不需要密碼驗證即可登錄系統,多用于系統維護 |
| 2 | multi-user.target | 用戶定義/域特定運行級別,默認等同于3,但是不能連網 |
| 3 | multi-user.target | 字符界面的完整多用戶模式,大多數服務器主機運行在此級別 |
| 4 | multi-user.target | 用戶定義/域特定運行級別。默認等同于3 |
| 5 | graphical.target | 圖形界面的多用戶模式,提供了圖形桌面操作環境 |
| 6 | reboot.target | 重新啟動,使用該級別時將會重啟主機 |
二、排除啟動類故障
1、修復MBR扇區故障
1.1、故障原因
- 病毒、木馬等造成的破壞
- 不正確的分區操作、磁盤讀寫誤操作
1.2、故障現象
- 找不到引導程序,啟動中斷
- 無法加載操作系統,開機后黑屏
1.3、解決思路
- 應提前做好備份文件
- 以安裝光盤引導進入急救模式
- 從備份文件中恢復
1.4、模擬故障示例
1.4.1、創建新硬盤,并格式化
1.4.2、備份MBR (扇區磁盤到其他磁盤)
1.4.3、模擬破壞MBR引導區
1.4.4、重啟,并進入急救模式
1.4.5、從備份文件中恢復MBR扇區數據
1.4.6、恢復成功,進入界面
2、修復GRUB引導故障
2.1、故障原因
- MBR中的GRUB引導程序遭到破壞
- grub.conf文件丟失、引導配置有誤
2.2、故障現象
- 系統引導停滯,顯示‘grub>’提示符
2.3、解決思路
- 嘗試手動輸入引導命令
- 進入急救模式,重寫或者從備份中恢復grub.conf
- 向MBR扇區中重建grub程序
2.3.1、方法一:手動輸入演示
①、查看grub.cfg文件內的內核名稱等信息
②、模擬故障
③、手動輸入引導命令
④、進入界面
2.3.2、方法二、進入急救模式,恢復GRUB引導程序
①、增加新硬盤,進行分區,格式化分區,并掛載到目錄
②、備份主引導記錄并模擬故障
③、進入急救模式,并恢復引導程序
④、恢復成功,進入界面
2.3.3、方法三、進入急救模式,重建GRUB菜單配置文件
①、刪除grub.cfg文件以模擬故障
②、進入急救模式下進行重建
③、重構成功,進入界面
3、遺忘root用戶密碼
3.1、故障原因
- 遺忘root用戶密碼
3.2、故障現象
- 無法進行需要root權限的管理操作
- 若沒有其他賬號可用,將無法登陸系統
3.3、解決思路
- 進入急救模式,重設密碼
3.4、示例
進入急救模式更改密碼
三、系統服務控制
1、格式
2、常用控制類型
| start | 啟動 |
| stop | 停止 |
| restart | 重新啟動 |
| reloud | 重新加載 |
| status | 查看服務狀態 |
3、同作用服務
| init 0 | systemcrl isolate poweroff.target | systemcrl poweroff | shutdown -h now |
| init 1 | systemcrl isolate rescue.target | ||
| init 3 | systemcrl isolate multi.target | ||
| init 5 | systemcrl isolate graphical.target | ||
| init 6 | systemcrl isolate reboot.target | systemcrl reboot | shutdown -r now |
四、Linux系統的運行級別
1、查看運行級別
| runlevel命令 | 只能查看切換運行級別與當前運行級別 |
| systemctrl工具 | 能查看默認的運行級別 |
2、臨時切換運行級別
| init命令 | init命令參數是運行級別所對應的數字 |
| systemctrl工具 | systemctrl的命令參數是具體的target |
3、設置永久運行級別
五、優化啟動過程
1、優化工具
1.1、ntsysv工具
- 提供一個交互式、可視化窗口
- 可以在字符終端運行
- 便于集中管理多個服務
- 用于控制服務是否開機自啟動
1.2、systemctl工具
- 不提供交互式、可視化窗口
- 管理單個服務效率更高
2、系統服務的啟動與控制
2.1、ntsysv系統服務管理工具
- 按空格鍵標志服務選項
- 按↑和↓鍵切換服務選項
- 按tab鍵切換光標
2.2、systemctl工具
2.2.1、查看系統服務的開機自啟動狀態
2.2.2、設置系統服務的啟動狀態
六、永久修改主機名和查看主機名狀態
七、設置系統語言和查看當前系統語言
總結
以上是生活随笔為你收集整理的详细图文演示——排除启动类故障以及Linux操作系统引导、运行级别和优化启动等相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宇帷内存官网购买攻略大揭秘,质量问题也有
- 下一篇: Linux小实验——设备挂载、磁盘分区、