引導過程與服務控制
引導過程與服務控制
一、Linux作業系統引導過程
二、排除啟動類故障
三、服務控制及切換執行級別
四、優化啟動過程
Linux作業系統引導過程
1、伺服器主機開機以後,將根據主機板BIOS的設定對CPU、記憶體、顯示卡、鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬碟。總結;檢查出第一個能引導系統的裝置,比如硬碟或者光碟機
2.MBR引導
當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中MBR(主引導記錄)的設定,將系統控制權 遞給包含作業系統引導檔案的分割槽;或者直接根據MBR記錄中的引導資訊呼叫啟動選單(如GRUB)
總結;執行放在MBR扇區裡的啟動GRUB載入程式
3.GRUB選單
對於Linux作業系統來說,GRUB(統一啟動載入器)是使用最為廣泛的多系統引導器程式。系統控制傳遞給GRUB以後,將會顯示啟動選單使用者選CentOS7採用的是GRUB2啟動引導器。
總結;GRUB載入程式通過讀取GRUB配置檔案/boot/grub2/grub.cfg,來獲取核心映象檔案系統的設定和路徑位置
4.載入Linux核心
Linux核心的一個預先編譯好多特殊二進位制檔案,介於各種硬體資源與系統程式之間,負責資源分配與排程。核心接過系統控制權以後,將完全掌控真個Linux作業系統的執行過程。
CentOS7系統中,預設的核心檔案位於"/boot/vmlinuz-3.10.0-514.e17.x86_64"。
總結;把核心和映象檔案系統載入到記憶體中
5.init程序初始化
為了完成進一步的系統引導過程,Linux核心首先將系統中的"/sbin/init"程式載入到記憶體中執行(執行中的程式成為程序),init程序負責完成整個系統的初始化,最後等待使用者進行登入。
總結;載入硬體啟動程式,核心把init程序載入到記憶體中執行
傳統SysVint依賴序列執行shell指令碼啟動服務,導致效率低下,系統啟動速度較慢
systemd能夠將更多的服務程序並行啟動,並且具有提供按需啟動服務的能力,是的啟動更少程序,從而提高系統啟動速度。
系統初始化程序
init程序
由Linux核心載入執行/sbin/init程式
init程序是系統中第一個程序,是所有程序的父程序
init程序的PID(程序標記)號永遠為1
Systemd
Systemd是Linux作業系統的一種init軟體
CentOS7中採用全新的Systemd啟動方式(並行啟動服務程序),取代傳統的SysVinit(序列執行shell指令碼進行啟動)
CentOS7中執行的第一個init程序是/lib/systemd/systemd
Systemd單元型別
單元型別 | 副檔名 | 說明 |
---|---|---|
Service | .service | 描述一個系統服務 |
Socket | .socket | 描述一個程序間通訊的套接字 |
Device | .device | 描述一個核心識別的裝置檔案 |
Mount | .mount | 描述一個檔案系統的掛載點 |
Automount | .automount | 描述一個檔案系統的自動掛載點 |
Swap | .swap | 描述一個記憶體交換裝置或交換檔案 |
Path | .path | 描述一個檔案系統中文檔案或目錄 |
Timer | .timer | 描述一個一個定時器(用於實現類似sron的排程任務) |
Snapshot | .snapshot | 用於一個systemd的狀態 |
Scope | .scope | 使用systemd的匯流排介面以程式設計的方式建立外部程序 |
Slice | .slice | 描述居於Cgroup的一組通過層次組織的管理系統程序 |
Target | .target | 描述一組systemd的單元 |
執行級別所對應的Systemd目標
執行級別 | Systemd的tardet | 說明 |
---|---|---|
0 | target | 關機狀態,使用該級別時將會關閉主機 |
1 | rescue.target | 單使用者模式,不需要password驗證即可登入系統,多用於系統維護 |
2 | multi-user.target | 使用者定義/域特定執行級別。預設等同於3 |
3 | multi-user.target | 字元介面的完整多使用者模式,大多資料伺服器主機執行在此級別 |
4 | multi-user.target | 使用者定義/域特定執行級別。預設等同於3 |
5 | graphical.target | 圖形介面的多使用者模式,提供了圖形左面操作環境 |
6 | reboot.target | 重新啟動,使用該級別時將會重啟主機 |
修復MBR扇區故障
故障原因
惡意程式、等造成的破壞
不正確的分割槽操作、磁碟讀寫誤操作
故障現象
找不到載入程式、啟動中斷
無法載入作業系統、好幾黑屏
解決思路
應提前做好備份檔案
以安裝光碟引導進入急救模式
從備份檔案中恢復
排除啟動類故障
修復MBR扇區故障
MBR位於
修復GRUB引導故障
故障原因
MBR中的GRUB載入程式遭到破壞
grub.conf檔案丟失。引導配置有誤
故障現象
系統引導停滯,顯示"grub>"提示符
解決思路
嘗試手動輸入應道命令
進入緊急模式,重寫或者從備份中恢復grub.conf
向MBR扇區中重建grub程式
系統服務控制
systemctl控制型別 服務名稱
控制型別
start:啟動
stop:停止
restart:重新啟動
reload:重新載入
status:檢視服務狀態 等等
檢視系統的執行級別
runlevel命令(runlevel只能檢視切換執行級別與當前執行級別systemctl時能檢視預設的執行級別)
systenclt工具
臨時切換執行級別
init命令
ntsysv工具
提供互動式、視覺化視窗
可以在字元終端執行
便於集中管理多個服務
用於控制服務是否開機自啟動
systemctl/chkconfig工具
不提供互動式、視覺化視窗
管理的那個服務效率高a
- 如何守護資料安全? 這裡有一份RDS災備方案為你支招
- 本案例將使用YOLOX、SCNet兩個模型,實現一個簡單的隔空作畫趣味應用
- 跟我學Python影象處理丨何為影象的灰度非線性變換
- 響應式網頁製作的一種方法(3)
- 首先要學習什麼:Docker 還是 Kubernetes?
- 資料湖架構及概念簡介
- (6)Flink CEP SQL模擬賬號短時間內異地登入風控預警
- 壓測實踐:ClickHouse與Elasticsearch
- Python自學教程7-字典有哪些常用操作
- 軟體測試之如何提升產品的使用者體驗度
- Kubernetes資源編排系列之五: OAM篇
- 測試右移-後臺服務監控告警實踐
- ModelBox開發體驗:使用YOLOv3做口罩檢測
- 延時任務(三)-基於redis zset的完整實現
- 【濾波跟蹤】基於自適應UKF和UKF演算法實現運動剛體的位姿估計附matlab程式碼
- 高數_第3章重積分_在極座標下計算二重積分
- 延時任務-基於netty時間輪演算法實現
- Python影象處理丨基於OpenCV和畫素處理的影象灰度化處理
- ?快速搞懂Mysql中BufferPool底層原理?
- SpringBoot系列教程之定義介面返回型別的幾種方式