引導過程總覽

2021-10-10 04:22:58 字數 4059 閱讀 1148

引導過程總覽

開機自檢(bios)➡mbr引導➡grub選單➡載入核心(kernel)➡ini程序初始化

作業系統核心——硬體

os外殼——應用

系統初始化程序

init程序:由linux核心載入執行 /sbin/init程式

init程序是系統中第乙個程序

init程序的pid(程序標記)號永遠為1

systemd是linux作業系統的一種init軟體

centos7中採用全新的systemd啟動方式,取代傳統的sysvinit

centos7中執行的第乙個init程序是/lib(庫檔案)/systemd/systemd

單元型別

service

.service

描述乙個系統服務

socket

.socket

描述乙個程序間通訊的套接字

device

.device

描述乙個核心識別的裝置檔案

mount

.mount

描述乙個檔案系統的掛載點

swap

.swap

描述乙個記憶體交換裝置或交換檔案

path

.path

描述乙個檔案系統中檔案或目錄

timer

.timer

描述乙個定時器(用於實現類似cron的排程任務)

snapshot

.snapshot

用於儲存乙個systemd的狀態

scope

.scope

使用systemd的匯流排介面以編輯的方式建立外部程序

slice

.slice

描述居於(group的一組通過層次組織的管理系統程序)

target

.target

描述一組systemd的單元

autmount

.autmount

描述乙個檔案的自動掛載點

執行級別所對應的systemd目標

執行級別

systemd的target

說明target

關機狀態,使用該級別時將會關閉主機

rescue.target

單使用者模式,不需要密碼驗證即可登入,用於系統維護

multi-user.target

使用者定義域特定執行級別預設等同於3

multi-user.target

字元介面的完整使用者模式,大多數伺服器主機執行在此級別

multi-user.target

使用者定義/域特定執行級別,預設等同於3

graphical.target

圖形介面的多使用者模式,提供了圖形桌面作業系統

reboot.target

重新啟動,使用該級別時將會重啟主機

修復mbr扇區故障

故障原因:病毒、木馬等造成的破壞

不正確的分割槽操作、磁碟讀寫誤操作

故障現象:找不到引導程式,啟動中斷

無法載入作業系統開機後黑屏

解決思路:應提前做好備份檔案

以安裝光碟引導進入急救模式

從備份檔案中恢復

模擬mbr扇區實驗(加一塊硬碟做實驗)

進系統檢視磁碟 fdisk -l 格式化:mkfs.ext4 /dev/sdb

掛載 mount /dev/sdb /oopt

備份mbr扇區資料

dd if=/dev/sda of=/opt/mbr.back bs=512 count=1

模擬mbr扇區故障

dd if=/dev/zero of=/opt/sda bs=512 count=1

出現:operating system not found

光碟引導,進入急救模式,提示操作

從備份檔案中恢復mbr扇區

步驟如下:

裝入光碟,在光碟引導介面選擇troubleshooting

進入troubleshooting選單選擇rescue a centos system

進入引導可以按回車,或者等待,按1再按回車進入sh-4.2#

急救模式下sdb的掛載 mkdir /sdb mount /dev/sdb /sdb

cd /sdb 查詢下該備份檔案是否存在

dd if=/sdb/mbr.back of=/dev/sda count=1 bs=512

重啟reboot進入系統測試是否正常

修復grub引導故障

故障原因mbr中的grub引導程式遭到破壞

grub.conf檔案丟失,引導配置有誤

故障現象:系統引導停滯,顯示「grub>"提示符

解決思路:

步驟:cd /boot/grub2 進入grub2

rm -rf grub.cfg 刪除grub2.cfg模擬故障

init 6重啟出現故障grub>

修復:引導急救模式,載入系統映象chroot /mnt/sysimage

重新構建grub選單配置檔案 grub2-mkconfig -o /doot/grub2/grub.cfg

退出bash環境 exit

重啟reboot

忘記root密碼

修復:引導急救模式,載入系統映象chroot /mnt/sysimage

修改密碼:passwd root

new:

retry:

退出bash環境:exit

重啟:reboot

系統服務控制 systemctl 控制型別,服務名稱

控制型別

start

啟動stop

停止restart

服務中斷並重新啟動

reload

status

檢視服務狀態

enable

開機自啟動

disable

開機禁用

檢視系統預設的執行級別:systemctl get-default

不重啟機器而切換當前的執行級別

檢視當前的執行級別

也可以用who-r 命令

修改預設的執行級別target(重啟之後才能生效)

刪除鏈結的目標檔案,在建立軟鏈結

檢視乙個執行級別下面的所有until服務依賴關係

系統服務的啟動和控制-ntsysv系統服務管理工具

按照預設設定,只有當前執行級別會被配置,要配置不同的執行級別使用」--level「選項來指定乙個或多個執行級別,例如,命令」ntsysv --level345「配置執行級別345

檢視哪些target引用了當前執行級別的target

systemctl 與關機/重啟相關命令

理出系統中包含的所有targe

查案centos的版本

檢視系統服務的啟動狀態

設定系統服務的啟動狀態

列出所有ative的unit

列出所有unit包括inactive

列出所有為執行的unit,擊狀態是inactive的

列出所有active的服務單元

列出所有狀態包括active和inactive的所有服務unit

檢索某一服務狀態

針對四種state的說明

enabled——已建立自啟動鏈結

disabled——設定建立自啟動鏈結

static——該配置檔案沒有【install】部分無法執行,只能作為其他配置檔案的以來

masked——該配置檔案被禁止建立啟動鏈結

列出乙個服務所依賴的單元

列出乙個unit的所有依賴

檢視unit檔案

顯式指定unit的所有底層引數

也可以只看其中的一項

daemon:系統為了具備某些功能,需要開啟相應的服務,服務就是我們所說的service,但是service的提供者是一些程式,所以為了完成這個service的程式,我們稱呼它為daemon,即為完成某個服務需要乙個daemon在後台中執行,沒有這個daemon就不會有service,基本上每個服務都能找到乙個它的daemon,所以昨天學的systemctl daemon-reload非常好用。

getty:這個服務是為了實現多終端功能的,什麼是多終端呢,就是累telnet的多執行緒,為了允許多使用者同時登陸時系統的這個功能而實現的。

linux引導過程

bios是位於主機板的快閃儲存器中某段特殊區域。這個過程主要是是執行bios中從位址0xffff0處開始的 主要是確定要使用哪個裝置來引導系統,這個過程的具體步驟為 1 加電自檢 post 即對硬體進行檢測 2 本地裝置的列舉及初始化,bios會按照cmos設定的順序來搜尋處於活動狀態並且可以引導的...

系統引導過程

系統引導過程主要由以下幾個步驟組成 以硬碟啟動為例 1 開機 2 bios加電自檢 post power on self test 記憶體位址為0fff 0000 3 將硬碟第乙個扇區 0頭0道1扇區,也就是boot sector 讀入記憶體位址0000 7c00處 4 檢查 word 0000 7...

Linux引導過程

1 開機 2 加電自檢 bios,一段程式用於控制管理硬體,並決定啟動順序 所有資料 於cmos晶元 3 mbr引導 尋找啟動裝置上的mbr資訊,搜尋系統所有分割槽位置 4 grub引導 系統選擇選單 boot grub grub.conf 5 載入核心 將啟動核心載入到記憶體中 改區域不可越權訪問...