內容結構
引導過程
排除啓動類故障
服務控制及切換運行級別
優化啓動過程
(一)引導過程
1,引導過程總覽
開機自檢 服務器主機開機以後,將根據主板 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單元類型
運行級別所對應的systemd目標
(二)排除啓動類故障(實驗操作!)
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
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 重啓
3)連接centos7鏡像光盤,重啓系統後迅速按ESC進入啓動菜單,選擇cdrom-Troubleshooting-rescue centos system
4)按1進入shell,創建掛載點/bak-將/dev/sdb1掛載到/bak-將備份的mbr複製到/dev/sda中,重啓完成修復
2,恢復GRUB引導故障
故障原因
MBR中的GRUB引導程序遭到破壞
grub.conf文件丟失,引導配置有誤
故障現象
系統引導停滯,顯示“grub>”提示符
解決思路
嘗試手動輸入引導命令
進入急救模式,重寫或者備份中恢復grub.conf
向MBR扇區中重建grub程序
1)模擬破壞GRUB引導配置文件,刪除grub配置文件
2)連接centos7鏡像光盤,重啓系統後迅速按ESC進入啓動菜單,選擇cdrom-Troubleshooting-rescue centos system-按1進入shell
3)切換bash環境-建立加載sda分區-構建grub菜單配置文件-退出bash環境-重啓
3,遺忘root用戶密碼
故障原因
遺忘root用戶的密碼
故障現象
無法進行需要root權限管理操作
若沒有其他可用賬號,將無法登錄系統
解決思路
進入急救模式,重設密碼
1)重啓你的Linux系統
2,進入急救模式,切換bash環境-修改密碼-退出bash環境-重啓即可
(三)服務控制及切換運行級別
系統服務類型
常用方式
systemctl 控制類型 服務名稱
控制類型
start:啓動
stop:停止
restart:重新啓動(停止加啓動,現實慎用)
reload:重新加載(刷新配置文件)
status:查看服務狀態
Linux系統的運行級別
查看運行級別
runlevel命令
systemctl工具
臨時切換運行級別
init命令
systemctl工具
命令含義 | 命令行界面 | 圖形界面 | 關機 | 重啓 |
init命令 | init3 | init5 | init0 | init6 |
systemctl命令 | systemctl isolate multi-usr.target | systemctl isolate graphical.target | systemctl isolate poweroff.target | systemctl 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
(四)優化啓動過程
系統服務管理工具
netstat -ntap查看正在進行的服務及端口
n:數字顯示
t:tcp協議
a:所有
p:協議
ntsysv工具
提供一個交互式,可視化窗口
可以在字符終端運行
便於集中管理多個服務
[root@localhost ~]# ntsysv 交換可視化服務管理
systemctl工具
不提供交互式,可視化窗口
管理單個服務效率更高
查看系統服務的啓動狀態
systemctl is-enabled 服務名稱
設置系統服務的啓動狀態
systemctl enable/disable 服務名稱
謝謝閱讀!!!