日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

linux引導(dǎo)和服務(wù)過程

作者:花生味花生米 更新時間: 2022-07-18 編程語言

目錄

前言

一.linux系統(tǒng)引導(dǎo)過程

二.系統(tǒng)初始化進程

三.Systemd單元類型

四.修復(fù)MBR扇區(qū)故障

?五.修復(fù)GRUB菜單

六.遺忘密碼并重置

總結(jié)


前言

引導(dǎo)過程能以兩種方式之一初始化。其一,如果系統(tǒng)處于關(guān)機狀態(tài),那么打開電源按鈕將開啟系統(tǒng)引導(dǎo)過程。其二,如果操作系統(tǒng)已經(jīng)運行在一個本地用戶(該用戶可以是 root 或其他非特權(quán)用戶),那么用戶可以借助圖形界面或命令行界面通過編程方式發(fā)起一個重啟操作,從而觸發(fā)系統(tǒng)引導(dǎo)過程。重啟包括了一個關(guān)機和重新開始的操作。

一.linux系統(tǒng)引導(dǎo)過程

開機自檢(BIOS)→MBR引導(dǎo)→GRUB菜單→加載內(nèi)核(kernel)→init進程初始化

開機自檢:? ? ? ? ?檢測硬件有沒有問題
MBR引導(dǎo):? ? ? ? 加載系統(tǒng)所需要的內(nèi)核
GRUB菜單:? ?? ?開啟文件或引導(dǎo)程序的列表,全加載出來
加載內(nèi)核:? ? ? ?? 把內(nèi)核相關(guān)的文件加載到內(nèi)存中
init進程初始化:把系統(tǒng)需要的服務(wù)開啟,并加載到內(nèi)存里

開機自檢
服務(wù)器主機開機以后,將根據(jù)主板BIOS中的設(shè)置對CPU(Central Processing Unit,中央處理器)、內(nèi)存、顯卡、鍵盤等設(shè)備進行初步檢測,檢測成功后根據(jù)預(yù)設(shè)的啟動順序移交系統(tǒng)控制權(quán),大多時候會移交給本機硬盤。

MBR引導(dǎo)
當從本機硬盤中啟動系統(tǒng)時,首先根據(jù)硬盤第一個扇區(qū)中MBR(Master Boot Record,主引導(dǎo)記錄)的設(shè)置,將系統(tǒng)控制權(quán)傳遞給包含操作系統(tǒng)引導(dǎo)文件的分區(qū),或者直接根據(jù)MBR記錄中的引導(dǎo)信息調(diào)用啟動菜單(如GRUB)。

GRUB菜單
對與Linux操作系統(tǒng)來說,GRUB(GRand Unified Bootloader,統(tǒng)一啟動加載器)是使用最為廣
泛的多系統(tǒng)引導(dǎo)器程序。系統(tǒng)控制權(quán)傳遞給GRUB以后,將會顯示啟動菜單給用戶選擇,并根據(jù)所
選項(或采用默認值)加載Linux內(nèi)核文件,然后將系統(tǒng)控制權(quán)轉(zhuǎn)交給內(nèi)核。需要注意的CentOS 7

加載內(nèi)核
Linux 內(nèi)核是一個預(yù)先編譯好的特殊二進制文件,介于各種硬件資源與系統(tǒng)程序之間,負責(zé)資源分
配與調(diào)度。內(nèi)核接過系統(tǒng)控制權(quán)以后,將完全等控整個 Linux 操作系統(tǒng)的運行過程。

init進程初始化
為了完成進一步的系統(tǒng)引導(dǎo)過程,Linux 內(nèi)核首先將系統(tǒng)中的 “/sbin/init”程序加載到內(nèi)存中運行(運行中的程序稱為進程),init 進程負責(zé)完成一系列的系統(tǒng)初始化過程,最后等待用戶進行登錄。

二.系統(tǒng)初始化進程

init進程
由Linux內(nèi)核加載運行/sbin/init程序
init進程是系統(tǒng)中的第一個進程
init進程的PID(進程標記)號永遠為1

Systemd
Systemd是Linux操作系統(tǒng)的一種init軟件
CentOS 7中采用全新的Systemd啟動方式,取代傳統(tǒng)的SysVinit
CentOS 7中運行的第一個init進程是/lib/systemd/systemd

三.Systemd單元類型

單元類型?? ? ? ? ? ? ? ? 擴展名? ? ? ? ? ? ?說明
Service? ? ? ? ? ? ? ? ? .service? ? ? ? ? ?描述一個系統(tǒng)服務(wù)
Socket? ? ? ? ? ? ? ? ? ?.socket? ? ? ? ? ? 描述一個進程間通信的套接字
Device? ? ? ? ? ? ? ? ? ?.device? ? ? ? ? ? 描述一個內(nèi)核識別的設(shè)備文件
Mount? ? ? ? ? ? ? ? ? ? .mount? ? ? ? ? ??描述一個文件系統(tǒng)的掛載點
Automoun? ? ? ? ? ? ?.automount? ??描述一個文件系統(tǒng)的自動掛載點
Swap? ? ? ? ? ? ? ? ? ? ? .swap? ? ? ? ? ? ?描述一個內(nèi)存交換設(shè)備或交換文件
Path? ? ? ? ? ? ? ? ? ? ? ?.path? ? ? ? ? ? ? ?描述一個文件系統(tǒng)中文件或目錄
Timer? ? ? ? ? ? ? ? ? ? ?.timer? ? ? ? ? ? ? 描述一個定時器(用于實現(xiàn)類似cron的調(diào)度任務(wù)
Snapshot?? ? ? ? ? ? ?.snapshot? ? ? ?用于保存一個systemd的狀態(tài)
Scope? ? ? ? ? ? ? ? ? ? .scope? ? ? ? ? ? 使用systemd的總線接口以編程的方式創(chuàng)建外部進程
Slice? ? ? ? ? ? ? ? ? ? ? .slice? ? ? ? ? ? ? ?描述居于Cgroup的一組通過層次組織的管理系統(tǒng)進程
Target? ? ? ? ? ? ? ? ? ?.target? ? ? ? ? ? ? 描述一組systemd的單元

四.修復(fù)MBR扇區(qū)故障

MBR位于第一塊硬盤(/dev/sda)的第一個物理扇區(qū)處,總共512字節(jié)
1.備份MBR扇區(qū)數(shù)據(jù)到其他磁盤(/dev/sdb1)
mkdir?/backup
mount?/dev/sdb1 /backup
dd if=/dev/sda?of=/backup/mbr.bak bs=512 count=1
(把sda512的引導(dǎo)程序復(fù)制到指定地點)

模擬破壞

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

進入急救模式


修復(fù)MBR引導(dǎo)

mkdir /backupdir
mount /dev/sdb1 /bak
dd if=/backupdir/grub.bak of=/dev/sda
exit

?五.修復(fù)GRUB菜單

mkdir?/bak
mount?/dev/sdb1 /bak
dd if=/dev/sda?of=/bak/grub.bak bs=446 count=1
(把sda446的GRUB復(fù)制到指定地點)

模擬破壞

dd if=/dev/zero of=/dev/sda bs=446 count=1

修復(fù)GRUB菜單

mkdir /backupdir
mount /dev/sdb1 /bak
dd if=/backupdir/grub.bak of=/dev/sda
exit

六.遺忘密碼并重置

重置root密碼
chroot /mnt/sysimage
passwd root
exit
reboot

總結(jié)

MBR引導(dǎo)512字節(jié),是sda的第一個物理扇區(qū),恢復(fù)時首先把sda備份到sdb在進急救模式,在進安全模式,創(chuàng)建掛載點,把備份在sdb中的mbr文件掛載到這個臨時掛載點上,在復(fù)制到sda,最后檢測查看。

原文鏈接:https://blog.csdn.net/qq_59161414/article/details/125708492

欄目分類
最近更新