Linux引導過程與服務控制—可動手實踐!(七)

內容結構

  • 引導過程

  • 排除啓動類故障

  • 服務控制及切換運行級別

  • 優化啓動過程



(一)引導過程

1,引導過程總覽

微信截圖_20190823153629.png

  • 開機自檢 服務器主機開機以後,將根據主板 BIOS 中的設置對 CPU(Central Processing Unit, 中央處理器)、內存、顯卡、鍵盤等設備進行初步檢測,檢測成功後根據預設的啓動順序移 交系統控制權,大多時候會移交給本機硬盤。 

  • MBR 引導 當從本機硬盤中啓動系統時,首先根據硬盤第一個扇區中 MBR(Master Boot Record, 主引導記錄)的設置,將系統控制權傳遞給包含操作系統引導文件的分區;或者直接根據 MBR 記錄中的引導信息調用啓動菜單(如 GRUB)。 

  • GRUB 菜單 對於 Linux 操作系統來說,GRUB(GRand Unified Bootloader,統一啓動加載器)是使 用最爲廣泛的多系統引導器程序。系統控制權傳遞給 GRUB 以後,將會顯示啓動菜單給用戶 選擇,並根據所選項(或採用默認值)加載 Linux 內核文件,然後將系統控制權轉交給內核。 需要注意的是,CentOS 7 採用的是 GRUB2 啓動引導器。 

  • 加載 Linux 內核 Linux 內核是一個預先編譯好的特殊二進制文件,介於各種硬件資源與系統程序之間, 負責資源分配與調度。內核接過系統控制權以後,將完全掌控整個 Linux 操作系統的運行過 程。在 CentOS 系統中,默認的內核文件位於“/boot/vmlinuz-3.10.0-514.el7.x86_64”。 

  • init 進程初始化 爲了完成進一步的系統引導過程,Linux 內核首先將系統中的“/sbin/init”程序加載到內存中運行(運行中的程序稱爲進程),init 進程負責完成一系列的系統初始化過程, 最後等待用戶進行登錄。

2,系統初始化進程及文件

init進程

  • 由Linux內核加載運行/sbin/init程序

  • 是系統中第一個進程

  • PID(進程標記)號永遠爲1

Systemd單元類型

微信截圖_20190823153629.png

運行級別所對應的systemd目標

微信截圖_20190823153629.png

(二)排除啓動類故障(實驗操作!)

1,修復MBR扇區故障

故障原因

  • 病毒等造成的破壞

  • 不正確的分區操作,磁盤讀寫誤操作

故障現象

  • 找不到引導程序,啓動中斷

  • 無法加載操作系統,開機後黑屏

解決思路

  • 應提前作好備份文件

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

  • 從備份文件中恢復

1)備份mbr引導扇區到其他磁盤,先創建一個磁盤分區/dev/sdb1-格式化-掛載到/data(詳細看前文章)

[root@localhost ~]# dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1  備份
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已複製,0.000254623 秒,2.0 MB/秒
[root@localhost ~]# ls /data    查看備份是否成功
sda.mbr.bak

微信截圖_20190823162033.png

2)模擬破壞sda中第一個扇區mbr引導分區,重啓

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1  模擬破壞
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已複製,0.00028556 秒,1.8 MB/秒
[root@localhost ~]# init 6  重啓

微信截圖_20190823162230.png

微信截圖_20190823163536.png

3)連接centos7鏡像光盤,重啓系統後迅速按ESC進入啓動菜單,選擇cdrom-Troubleshooting-rescue centos system

微信截圖_20190823163536.png

微信截圖_20190823162033.png

微信截圖_20190823162230.png

4)按1進入shell,創建掛載點/bak-將/dev/sdb1掛載到/bak-將備份的mbr複製到/dev/sda中,重啓完成修復

微信截圖_20190823163536.png

微信截圖_20190823171347.png

微信截圖_20190823173043.png

微信截圖_20190823173242.png

2,恢復GRUB引導故障

故障原因

  • MBR中的GRUB引導程序遭到破壞

  • grub.conf文件丟失,引導配置有誤

故障現象

  • 系統引導停滯,顯示“grub>”提示符

解決思路

  • 嘗試手動輸入引導命令

  • 進入急救模式,重寫或者備份中恢復grub.conf

  • 向MBR扇區中重建grub程序

1)模擬破壞GRUB引導配置文件,刪除grub配置文件

微信截圖_20190823162033.png

微信截圖_20190823162230.png

微信截圖_20190823163536.png

2)連接centos7鏡像光盤,重啓系統後迅速按ESC進入啓動菜單,選擇cdrom-Troubleshooting-rescue centos system-按1進入shell

微信截圖_20190823163536.png

微信截圖_20190823162033.png

微信截圖_20190823162230.png

微信截圖_20190823163536.png

微信截圖_20190823171347.png

3)切換bash環境-建立加載sda分區-構建grub菜單配置文件-退出bash環境-重啓

微信截圖_20190823171347.png微信截圖_20190823173242.png

3,遺忘root用戶密碼

故障原因

  • 遺忘root用戶的密碼

故障現象

  • 無法進行需要root權限管理操作

  • 若沒有其他可用賬號,將無法登錄系統

解決思路

  • 進入急救模式,重設密碼

1)重啓你的Linux系統

微信截圖_20190823193646.png

2,進入急救模式,切換bash環境-修改密碼-退出bash環境-重啓即可

微信截圖_20190823194204.png

(三)服務控制及切換運行級別

系統服務類型

常用方式

  • systemctl 控制類型 服務名稱

控制類型

  • start:啓動

  • stop:停止

  • restart:重新啓動(停止加啓動,現實慎用)

  • reload:重新加載(刷新配置文件)

  • status:查看服務狀態

微信截圖_20190823233018.png

Linux系統的運行級別

查看運行級別

  • runlevel命令

  • systemctl工具

微信截圖_20190823222017.png

臨時切換運行級別

  • init命令

  • systemctl工具


命令含義命令行界面圖形界面關機重啓
init命令init3init5init0init6
systemctl命令systemctl isolate multi-usr.targetsystemctl isolate graphical.targetsystemctl isolate poweroff.targetsystemctl isolate reboot.target
[root@localhost ~]# init 3 切換爲命令行界面
[root@localhost ~]# runlevel 
5 3
或者
[root@localhost ~]# systemctl isolate multi-user.target  切換爲命令行界面

更改默認的運行級別模式

[root@localhost ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target   利用軟連接修改
[root@localhost ~]# systemctl get-default
graphical.target

微信截圖_20190823224605.png

(四)優化啓動過程

系統服務管理工具

netstat -ntap查看正在進行的服務及端口

  • n:數字顯示

  • t:tcp協議

  • a:所有

  • p:協議

微信截圖_20190823230106.png

ntsysv工具

  • 提供一個交互式,可視化窗口

  • 可以在字符終端運行

  • 便於集中管理多個服務

[root@localhost ~]# ntsysv  交換可視化服務管理

微信截圖_20190823230435.png

systemctl工具

  • 不提供交互式,可視化窗口

  • 管理單個服務效率更高

查看系統服務的啓動狀態

systemctl is-enabled 服務名稱

微信截圖_20190823231234.png

設置系統服務的啓動狀態

systemctl enable/disable 服務名稱

微信截圖_20190823232200.png



謝謝閱讀!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章