引導過程總覽
開機自檢(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 載入核心 將啟動核心載入到記憶體中 改區域不可越權訪問...