天天看點

系統引導過程及服務控制

一 Linux作業系統引導過程

1. 引導過程流程圖

系統引導過程及服務控制

2. 引導過程

(1) 開機自檢

① 伺服器主機開機以後,将根據主機闆BIOS中的設定對CPU、記憶體、顯示卡、鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬碟。

② 總結:檢測出第一個能夠引導系統的裝置,比如硬碟或者光驅

(2) MBR引導

① 當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中MBR(主引導記錄)的設定,将系統控制權傳遞給包含作業系統引導檔案的分區;或者直接根據MBR記錄中的引導資訊調用啟動菜單(如 GRUB)。

② 總結:運作放在MBR扇區裡的啟動GRUB引導程式。

(3) GRUB菜單

① 對于Linux作業系統來說,GRUB(統一啟動加載器)是使用最為廣泛的多系統引導器程式。系統控制權傳遞給GRB以後,将會顯示啟動菜單給使用者選擇,并根據所選項(或采用預設值〉加載Linux核心檔案,然後将系統控制權轉交給核心。

② Centos 7采用的是GRUB2啟動引導器。

③ 總結: GRUB引導程式通過讀取GRUB配置檔案/boot/grub2/grub.cfg,來擷取核心和鏡像檔案系統的設定和路徑位置

(4) 加載Linux核心

① Linux核心是一個預先編譯好的特殊二進制檔案,介于各種硬體資源與系統程式之間,負責資源配置設定與排程。核心接過系統控制權以後,将完全掌控整個Linux作業系統的運作過程。

② Centos 7系統中,預設的核心檔案位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

③ 總結:把核心和鏡像檔案系統加載到記憶體中

(5) init程序初始化

① 為了完成進一步的系統引導過程,Linux核心首先将系統中的"/sbin/init"程式加載到記憶體中運作(運作中的程式稱為程序),init程序負責完成整個系統的初始化,最後等待使用者進行登入。

② 總結:加載硬體驅動程式,核心把init程序加載到記憶體中運作

3. 系統初始化程序

(1) init程序

① 由Linux核心加載運作/sbin/init 程式。

② init 程序是系統中的第一個程序 ,是所有程序的父程序。

③ init 程序的 PID 号永遠是為1。

(2) Systemd

① Systemd 是Linux 作業系統的一種init 軟體

② Centos 7 中采用全新的Systemd 啟動方式 ,取代傳統的SysVint

③ CentOS 7 中運作的第一個init 程序是 /lib/systemd/systemd

(3) systemd 單元類型

單元類型 擴充名 說明
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的單元

注:傳統SysVinit依賴于串行執行 shell腳本啟動服務,導緻效率低下,系統啟動速度較慢

systemd能夠将更多的服務程序并行啟動,并且具有提供按需啟動服務的能力,使得啟動更少程序,進而提高系統啟動速度。

二 故障表排除

1. 修複MBR扇區故障

(1) 故障原因

① 病毒、木馬等造成的破壞

② 不正确的分區操作

(2) 故障現象

① 找不到引導程式,啟動中斷

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

(3) 解決思路

① 提前做好備份檔案

② 以CD光牒安裝引導進入急救模式

③ 從備份檔案中恢複

(4) 實際操作

① 備份MBR扇區資料到其它磁盤(/dev / sdb1)

mkdir /backup

mount /dev/ sdb1 /backup

dd if=/dev / sda  of=/backup/mbr.bak  bs=512  count=1

② 模拟破壞MBR引導扇區

dd if=/ dev/zero  of=/dev/ sda  bs=512  count=1

③ 引導界面進入急救模式,從備份檔案中恢複MBR扇區資料

先加載好CD光牒鏡像,重新開機作業系統,

當出現安裝向導界面時,選擇"Troubleshooting”選項,

再選擇"Rescue a Centos Linux system"選項,進入急救模式

選擇"1"選擇Continue并按Enter鍵繼續

再次按 Enter鍵後将進入帶"sh-4.2#"提示符的 Bash Shell環境sh-4.2#mkdir /backupdir

sh-4.2# mount /dev / sdb1 / backupdir #挂載帶有備份檔案的分區

sh-4.2#dd if=/backupdir/mbr.bak of=/dev / sda #恢複備份資料

sh-4.2#exit #執行exit指令退出臨時Shell環境,系統将會自動重新開機

(5) 實際操作

 0.添加一塊新硬碟

系統引導過程及服務控制

 1.idisk指令檢視添加硬碟

系統引導過程及服務控制

2.設定磁盤分區

系統引導過程及服務控制

3.格式化為xfs檔案類型

系統引導過程及服務控制

4.将磁盤挂載到backup目錄下

系統引導過程及服務控制

5.将sda中的512位元組複制到backup目錄裡的mbr.bak

系統引導過程及服務控制

 6.利用空字元覆寫sda目錄-造成無法開機

系統引導過程及服務控制

 7.重新開機

系統引導過程及服務控制

 8.選擇急救模式

系統引導過程及服務控制

 9.拯救系統

系統引導過程及服務控制

 10.重新配置mbr.bak檔案

系統引導過程及服務控制

2. 修複GRUB引導故障

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

grub.conf檔案丢失、引導配置有誤

系統引導停滞,顯示"grub>”提示符

嘗試手動輸入引導指令

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

向MBR扇區中重建grub程式

(4) 解決方法

/boot/grub/目錄下的包是用于啟動菜單的背景圖檔及樣式

/boot/grub2/grub.cfg     #GRUB配置檔案

方法一:手動輸入引導指令(笨拙繁瑣,不建議使用)

grub> insmod xfs #加載指定的子產品到核心

grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-      ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8

核心的名字及位置等資訊

grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img #鏡像系統檔案

grub> boot     #引導boot

方法二:進入急救模式,恢複GRUB引導程式(與MBR 引導扇區類似)

MBR位于第一塊硬碟(/dev/sda)的第一個實體扇區處,總共512位元組,前446位元組是主引導記錄,分區表儲存在MBR扇區中的第447-510位元組中。

mkdir /bak

mount /dev/sdb1 /bak

dd if=/dev/sda of=/bak/grub.bak bs=446 count=1

模拟對MRB中的GRUB引導程式的破壞,但并不破壞分區表

dd if=/dev/zero of=/dev/sda bs=446 count=1

引導界面進入急救模式,從備份檔案中恢複GRUB引導程式

sh-4.2# mkdir /backupdir

sh-4.2# mount /dev/sdb1 /backupdir

sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda

sh-4.2# exit

方法三:引導界面進入急救模式,重建GRUB菜單配置檔案

rm -rf /boot/grub2/grub.cfg

進入急救模式,加載CD光牒鏡像,切換到系統根環境

sh-4.2# chroot /mnt/sysimage

重新将GRUB引導程式安裝到第一塊硬碟(/dev/sda)的MRB扇區

bash-4.2# grub2-install /dev/sda

重新建構GRUB菜單的配置檔案

bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg

退出chroot 環境,并重新開機

bash-4.2# exit

sh-4.2# reboot

方法三 實際操作

1.通過删除grub檔案無法開機

系統引導過程及服務控制

 2.将cd-rom打開方式排在第一位

系統引導過程及服務控制

 3.選擇急救模式

系統引導過程及服務控制

4.拯救系統

系統引導過程及服務控制

 5.重新配置grub

系統引導過程及服務控制

16.啟動模式更回去

系統引導過程及服務控制

3. 遺忘root使用者密碼

(1) 進入急救模式,加載系統鏡像,切換到系統根環境

① sh-4.2# chroot /mnt/sysimage

(2) 重設root使用者密碼

① bash-4.2# passwd root

(3) 實際操作

1.更改啟動項

系統引導過程及服務控制

2.cd-rom進入系統

系統引導過程及服務控制

3.急救模式

系統引導過程及服務控制
系統引導過程及服務控制

繼續閱讀