CentOS 7引導過程與服務控制(一)

一、引導過程總覽

CentOS 7引導過程與服務控制(一)
1.開機自檢
服務器主機開機以後,將根據主板 BIOS 中的設置對 CPU、內存、顯卡、鍵盤等設備進行初步檢測,檢測成功後根據預設的啓動順序移交系統控制權,大多時候會移交給本機硬盤。
2.MBR 引導
當從本機硬盤中啓動系統時,首先根據硬盤第一個扇區中MBR(Master Boot Record主引導記錄)的設置,將系統控制權傳遞給包含操作系統引導文件的分區;或者直接根MBR 記錄中的引導信息調用啓動菜單。
3.GRUB 菜單
對於 Linux 操作系統來說,GRUB(GRand Unified Bootloader,統一啓動加載器)是使用最爲廣泛的多系統引導器程序。系統控制權傳遞給 GRUB 以後,將會顯示啓動菜單給用戶選擇,並根據所選項加載 Linux 內核文件,然後將系統控制權轉交給內核。 (CentOS 7 採用的是 GRUB2 啓動引導器)。
4.加載內核
Linux 內核是一個預先編譯好的特殊二進制文件,介於各種硬件資源與系統程序之間,負責資源分配與調度。內核接過系統控制權以後,將完全掌控整個 Linux 操作系統的運行過 程。
5.init 進程初始化
爲了完成進一步的系統引導過程,Linux 內核首先將系統中的“/sbin/init”程序加載到內存中運行,init 進程負責完成一系列的系統初始化過程,最後等待用戶進行登錄。

二、init 進程

Linux 操作系統中的進程使用數字進行標記,每個進程的身份標記號稱爲 PID。在引導Linux 操作系統的過程中,“/sbin/init”是內核第一個加載的程序,因此 init 進程對應的PID 號總是爲 1。

三、Systemd簡介

Systemd 是 Linux 操作系統的一種 init 軟件,CentOS 7 系統中採用了全新的 Systemd 啓動方式,取代了傳統的 SysVinit。Systemd 啓動方式使系統初始化時諸多服務並行啓動,大大提高了開機效率。CentOS 7 系統中“/sbin/init”是“/lib/systemd/systemd”的鏈接文件。換言之,CentOS 7 系統中運行的第一個 init 進程是“/lib/systemd/systemd”。 systemd 守護進程負責 Linux 的系統和服務,systemctl 用於控制 Systemd 管理的系統和服務狀態。以下是Systemd的單元類型。
CentOS 7引導過程與服務控制(一)
早期 Linux 操作系統中的 SysVinit 機制,默認包括七種不同的服務搭配方式,爲了向下兼容 SysVinit 系統,Systemd 使用了相應的 target(目標)模擬了 SysVinit 的運行級別,如圖。
CentOS 7引導過程與服務控制(一)

四、排除系統啓動故障

1、修復MBR扇區故障
MBR 位於物理硬盤的第一個扇區(512 字節),該扇區又稱爲主引導扇區,除了包含系統引導程序的部分數據外,還包含整個硬盤的分區表記錄。當主引導扇區發生故障時,將可能無法加載系統,通過該硬盤引導主機時很可能進入黑屏狀態。
扇區故障實驗:
(1)首先我們添加一塊硬盤,然後(1)執行“fdisk /dev/sdb”命令將硬盤分區。
CentOS 7引導過程與服務控制(一)
(2)執行“mkfs.xfs /dev/sdb1”命令對硬盤分區進行格式化。
CentOS 7引導過程與服務控制(一)
(3)執行“mkdir /data”命令創建目錄作爲掛載點,再執行“mount /dev/sdb1 /data”將硬盤設備掛載到目錄上。
CentOS 7引導過程與服務控制(一)
(4)執行“dd if=/dev/sda of=/data/sda.mbr.bak bs=512 count=1”命令將主硬盤的第一扇區的內容備份到“/data”目錄中。
CentOS 7引導過程與服務控制(一)
(5)執行“dd if=/dev/zero of=/dev/sda bs=512 count=1”命令來模擬主分區故障。
CentOS 7引導過程與服務控制(一)
(6)執行“init 6”命令重啓來看一下,顯示無法找到系統。
CentOS 7引導過程與服務控制(一)
(7)我們重啓設備,在加載讀條的時候及時按下Esc鍵進入“Boot Menu”界面,並將系統鏡像放入驅動中然後使用方向鍵選擇“CD-ROM Drive”選項進入驅動引導。
CentOS 7引導過程與服務控制(一)
(8)在嚮導界面使用方向鍵選擇“Troubleshooting”進入故障修復頁面,再選擇“Rescue a CentOS Linux system”選項,將以“救援模式”引導 Linux 操作系統。
CentOS 7引導過程與服務控制(一)
CentOS 7引導過程與服務控制(一)
(9)然後選擇 “1”確認並按 Enter 鍵繼續,接下來會出現字符界面。
CentOS 7引導過程與服務控制(一)
(10)按 Enter 鍵後將進入Bash Shell 環境。
CentOS 7引導過程與服務控制(一)
(11)執行“mkdir /bak”命令創建目錄,並執行“mount /dev/sdb1 /bak”命令將硬盤設備掛載到該目錄上。
CentOS 7引導過程與服務控制(一)
(12)執行“dd if=/bak/sda.mbr.bak of=/dev/sda”命令將備份的主扇區內容放入到主扇區裏。
CentOS 7引導過程與服務控制(一)
(13)最後執行“reboot”命令重啓設備即可。
CentOS 7引導過程與服務控制(一)
2、GRUB引導故障
GRUB 是大多數 Linux 操作系統默認使用的引導程序,可以通過啓動菜單的方式選擇進入不同的操作系統。
故障模擬實驗:
(1)執行“cd /boot/”命令再執行“ls”命令可以看到“grub2”目錄。
CentOS 7引導過程與服務控制(一)
(2)執行“cd grub2”命令再執行“ls”命令可以看到“grub.cfg”配置文件(CentOS 7 採用的是 GRUB2 啓動引導器)。 。
CentOS 7引導過程與服務控制(一)
(3)執行“rm -rf grub.cfg”刪除掉配置文件,然後執行“init 6”命令重啓設備。
CentOS 7引導過程與服務控制(一)
(4)重啓可以發現系統讓我們手寫啓動菜單界面。
CentOS 7引導過程與服務控制(一)
(5)重啓設備並導入鏡像到驅動中,在加載讀條時及時按下Esc鍵進入“Boot Menu”界面。使用方向鍵選擇“CD-ROM Drive”選項進入驅動引導。
CentOS 7引導過程與服務控制(一)
(6)在嚮導界面使用方向鍵選擇“Troubleshooting”進入故障修復頁面,再選擇“Rescue a CentOS Linux system”選項,將以“救援模式”引導 Linux 操作系統。
CentOS 7引導過程與服務控制(一)
CentOS 7引導過程與服務控制(一)
(7)然後選擇 “1”確認並按 Enter 鍵繼續,接下來會出現字符界面。
CentOS 7引導過程與服務控制(一)
(8)按 Enter 鍵後將進入Bash Shell 環境。
CentOS 7引導過程與服務控制(一)
(9)執行“chroot /mnt/sysimage/”命令加載系統鏡像,再執行“grub2-install /dev/sda”命令重新建立加載sda分區。
CentOS 7引導過程與服務控制(一)
(10)執行“grub2-mkconfig -o /boot/grub2/grub.cfg”命令選擇構建grub菜單配置文件。
CentOS 7引導過程與服務控制(一)
(11)執行“exit”命令退出bash環境,再執行“reboot”命令重啓即可。
CentOS 7引導過程與服務控制(一)

五、重置root用戶密碼

當忘記 root 用戶的密碼時,將無法登錄 Linux 操作系統執行管理、維護等任務,而只能通過其他用戶(普通用戶)登錄使用一些受限制的功能。當然,如果操作系統中還有其他具有 root 權限的用戶(uid 爲 0),或者擁有修改 root 賬號密碼權限的用戶,也可以使用這些用戶登錄操作系統,然後重新設置 root 用戶的密碼。
模擬實驗:
1、將鏡像放入驅動並重啓設備。
CentOS 7引導過程與服務控制(一)
2、在加載讀條時及時按下Esc鍵進入“Boot Menu”界面。使用方向鍵選擇“CD-ROM Drive”選項進入驅動引導。
CentOS 7引導過程與服務控制(一)
3、在嚮導界面使用方向鍵選擇“Troubleshooting”進入故障修復頁面,再選擇“Rescue a CentOS Linux system”選項,將以“救援模式”引導 Linux 操作系統。
CentOS 7引導過程與服務控制(一)
CentOS 7引導過程與服務控制(一)
4、然後選擇 “1”確認並按 Enter 鍵繼續,接下來會出現字符界面。
CentOS 7引導過程與服務控制(一)
5、按 Enter 鍵後將進入Bash Shell 環境。
CentOS 7引導過程與服務控制(一)
6、執行“chroot /mnt/sysimage/”命令加載系統鏡像, 在執行“passwd root”命令即可重置。
CentOS 7引導過程與服務控制(一)

下一篇幅我們將學習CentOS 7 的服務控制與優化啓動過程。盡請期待,謝謝!

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