理論篇·(MBR扇區,GRUB菜單,passwd密碼)引導過程故障修復與(ntsysv,systemctl)服務控制

第八章 引導過程與服務控制

一、Linux操作系統引導過程

clipboard.png

1.1、開機自檢

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

1.2、MBR引導

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

1.3、GRUB引導

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

1.4、加載Linux內核

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

1.5、init進程初始化

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

二、系統初始化進程

2.1、init進程

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

init進程時系統中第一個進程

init進程的PID(進程標記)號永遠是1

2.2、Systemd

Systemd是Linux操作系統的一種init軟件

CentOS 7 中採用全新的System啓動方式,取代傳統的SysVinit

CentOS 7 中運行的第一個init進程是/lib/systemd/systemd

三、Systemd概述

Systemd是Linux操作系統的一種init軟件,CentOS 7 系統中採用了全新的Systemd啓動方式,取代了傳統的SysVinit。Systemd啓動方式使系統初始化時諸多服務並行啓動,大大提高了開機效率。CentOS 7系統中“/sbin/init”時”“/lib/systomd/systemd”的鏈接文件。換言之。CentOS 7 系統中運行的第一個init進程是“/lib/systemd/systemd”。systemd守護進程負責Linux的系統和服務,systemctl用於控制Systemd管理的系統和服務狀態。

3.1、System將其管理的資源組織成各種類型的單元(Unit)

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

3.2、運行級別所對應的Systemd目標

運行級別 Systemd的target 說明
0 target 關機狀態,使用該級別時將會關閉主機
1 rescue.target 單用戶模式,不需要密碼驗證即可登錄系統,多用於系統維護
2 multi-user.target 用戶定義/域特定運行級別。默認等同於3
3 multi-user.target 字符界面的完整多用戶模式,大多數服務器主機運行在此級別
4 multi-user.target 用戶定義/域特定運行級別。默認等同於3
5 graphical.target 圖形界面的多用戶模式,提供了圖形桌面操作系統
6 reboot.target 重新啓動,使用該級別時將會重啓主機

四、修復MBR扇區故障

MBR位於物理硬盤的第一個扇區(512字節),該扇區又稱爲主引導扇區(MBR扇區),除了包含系統引導程序的部分數據外,還包含整個硬盤的分區表記錄。當主引導扇區發生故障時,將可能無法進入引導菜單,或者因無法找到正確的分區位置而無法加載系統,通過該硬盤引導主機時很可能進入黑屏狀態。

故障原因

病毒、木馬等造成的破壞

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

故障現象

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

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

解決思路

應提前做好備份文件

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

從備份文件中恢復

五、修復GRUB引導故障

故障原因

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

grub.conf文件丟失、引導配置有無

故障現象

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

解決思路

嘗試手動輸入引導命令

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

向MBR扇區中重建grub程序

六、遺忘root用戶密碼

故障原因

遺忘root用戶的密碼

故障現象

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

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

解決思路

進入急救模式,重設密碼

系統服務控制

systemctl 控制類型 服務名稱

控制類型

start:啓動、運行指定的系統服務程序,實現服務功能。

stop:停止、終止指定的系統服務程序,關閉相應的功能。

restart:重新啓動、先退出,再重新運行指定的系統服務程序。

reload:重新加載、不退出服務程序,只是刷新配置。在某些服務中於restart的才做相同。

status:查看服務狀態、查看指定的系統服務的運行狀態及相關信息。

七、Linux系統的運行級別

查看運行級別

runlevel命令—runlevel只能查看切換運行級別與當前運行級別

systemctl工具—systemctl查看默認的運行級別

臨時切換運行級別

init命令—init的命令參數是運行級別所對應的數字

systemctl工具—systemctl的命令參數是具體的target

設置永久運行級別

八、優化啓動過程

Linux才做系統中包含了大量的服務程序,這些服務程序在切換運行級別時根據預設的狀態進行啓動或終止。其中有不少系統服務可能並不是用戶需要的,但是默認也運行了。

ntsysv工具

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

可以在字符終端運行

便於集中管理多個服務

systemctl工具

不提供交互式、可視化窗口

管理單個服務效率更高

系統中常見的系統服務

服務名稱 用途簡介 備註
atd 延期、定時執行任務 建議關閉
bluetooth 發現、認證藍牙相關設備 建議關閉
crond 按預定週期執行計劃任務 建議開啓
irqbalance 多核心cpu處理器的調度支持 建議開啓
kdump 記錄內核崩潰時的內存信息 建議關閉
lvm2-monitor LVM管理及監控 建議開啓
netfs 訪問共享文件夾等網絡文件系統 建議開啓
network 配置及使用網卡、網絡地址 建議開啓
restorecond SELinux安全機制的文件監控和恢復功能 建議關閉
rhnsd 訪問 Red Hat Network,獲取通知、提交訂閱等 建議關閉
rpcgssd 管理NFS(Network File System,網絡文件系統)訪問中的客戶程序語境 建議關閉
saslauthd 基於文本的身份認證 建議關閉
smartd 監控本地磁盤的狀態併發送故障報告 建議開啓
smb 文件共享服務 建議關閉
sshd 提供遠程登錄和管理Linux主機的功能 建議開啓
rsyslog 記錄內核、系統的日誌信息 建議開啓
vsftpd 通過FTP(File Transfer Protocol,文件傳輸協議)提供文件上傳、下載功能 建議關閉

###必須強調,這些服務到底時選擇開啓還是關閉,應根據主機的實際功能需求來定。

九、系統服務的啓動和控制

ntsysv系統服務管理工具

ntsysv
ntsysv --level 級別列表
clipboard.png

查看系統服務的啓動狀態

systemctl is-enable 服務名稱

設置系統服務的啓動狀態

systemctl enable/disable 服務名稱

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