1. 程式人生 > 其它 >Linux基礎第八章:作業系統引導過程、執行級別及開機問題處理

Linux基礎第八章:作業系統引導過程、執行級別及開機問題處理

一、作業系統引導過程

1、開機自檢(bios)

2、MBR引導

3、grub選單

4、載入核心(kernel)

5、init程序初始化

二、作業系統執行級別(init0-init6)

1、init 0級別

2、init 1級別

3、init 2 3 4級別

4、init 5級別

5、init 6級別

三、開機問題處理

1、MBR扇區故障修復(使用光碟機修復)

2、修復grub分割槽

3、忘記root密碼

一、作業系統引導過程
1、開機自檢(bios)
開機自檢:通過bios程式檢查硬體是否正常,如果硬體出現問題則會卡在開機介面提示不同報錯

2、MBR引導
MBR引導:第一階段grub引導及載入分割槽表

3、grub選單


grub選單:第二階段grub載入核心檔案到系統記憶體中執行起來,核心檔案位置:/boot/grub2/grub.cf(centos 7)

4、載入核心(kernel)
載入核心:載入完畢進入作業系統

5、init程序初始化
init程序初始化:啟動作業系統後需要啟動程序,Centos 6系統的第一個程序是init程序,Centos 7的第一個程序是systemd程序。

system與init區別:

①systemd程序有init程序沒有的監聽功能,只要systemd正常其他程序都可以休眠,當有需要呼叫其他程序時systemd會將對應程序喚醒。

②systemd啟動是並行啟動,所有服務一起啟動相對較快。init啟動是序列啟動,一個服務接一個服務啟動相對較慢。



systemd 是centos 7的第一啟動項

init          是centos6 的第一啟動項

二、作業系統執行級別(init0-init6)
1、init 0級別
init 0是關機

2、init 1級別
init 1是單使用者安全模式

3、init 2 3 4級別
init 2、init 3 、init 4都是純字元介面,但是init 2 和init 4各缺乏一些功能,所以常用的是init 3級別

4、init 5級別
init 5是圖形化介面

5、init 6級別
init 6是重啟

三、開機問題處理

1、MBR扇區故障修復(使用光碟機修復)

MBR在第一扇區的前512個位元組,即/dev/sda的前512個位元組。

①首先將MBR扇區的前512位元組備份到另外一塊硬碟,注意不要備份到sda硬碟,模擬sda硬碟損壞備份到sda硬碟無法恢復。命令如下

dd if=/dev/sda of=/dev/sdb1 count=1 bs=512
# dd 相當於複製
# if 是原始檔
# of 是目的檔案
# count 指定讀取資料塊的數量
# bs 讀取資料塊的大小,不寫單位預設為位元組,加單位要寫大小如M、G

②然後模擬MBR的前512位元組損壞,命令如下,開機報錯圖如下。

dd if=/dev/zero of=/dev/sda count=1 bs=512
# dd 相當於複製
# if 是原始檔
# of 是目的檔案
# count 指定讀取資料塊的數量
# bs 讀取資料塊的大小,不寫單位預設為位元組,加單位要寫大小如M、G

 ③重新開機在出現進度條時快速按ESC鍵,如下圖。

 ④然後選擇CD-ROM Drive進入光碟機,如下圖。

  ⑤光碟機模式下選擇進入救援模式Troubleshooting,然後選擇Rescue a CentOS system。如下圖

 ⑥出現選擇介面選擇1 Continue繼續。如下圖

 ⑦然後直接回車進入光碟機中的小系統,並建立一個資料夾/bak將sdb1掛載到/bak目錄下,注意不要輸入對應的命令,輸入chroot /mnt/sysimage是進入自己的系統。如下圖。

 

 ⑧然後 ls /bak即可以看到sdb1中備份的檔案bak,將bak檔案還原到/dev/sda中重新啟動系統即可正常進入系統。如下圖

 

 2、修復grub分割槽

Cenots 7系統grub分割槽位置在/boot/grub2/grub.cfg

①首先將grub分割槽檔案刪除,命令如下。系統啟動報錯圖片如下

rm -rf /boot/grub2/grub.cfg

 ②重新開機在出現進度條時快速按ESC鍵,如下圖。

 ③然後選擇CD-ROM Drive進入光碟機,如下圖。

 ④光碟機模式下選擇進入救援模式Troubleshooting,然後選擇Rescue a CentOS system。如下圖

⑤出現選擇介面選擇1 Continue繼續。如下圖

 

 ⑥然後輸入對應命令chroot /mnt/sysimage進入自己系統,如下圖。

⑦進行重新建立載入sda分割槽,重新構建grub選單配置檔案命令然後重啟即可正常進入系統,如下圖。

grub2-install /dev/sda #重新建立載入sda分割槽
grub2-mkconfig -o /boot/grub2/grub.cfg #重新構建grub選單配置檔案
exit退出自己系統

reboot重啟

3、忘記root密碼

系統正常但是root密碼忘記。

①首先在系統載入核心時按任意鍵盤停止倒計時,一般習慣使用上下鍵,如下圖。

 

  ②然後按e進入編輯模式找到linux開頭的一行在該行尾新增rd.break,然後按ctrl+c鍵啟動。

 ③啟動完成介面如下,修改根目錄許可權,然後切換到根目錄

mount –o remount,rw /sysroot #進入後修改根目錄的許可權
chroot /sysroot #切換到根命令

④然後修改root密碼,若SELinux是啟用的,才需要執行重新打標籤操作若沒啟用則直接重啟密碼已經修改完成,如下圖。

passwd root #修改root密碼
#輸入2次密碼,密碼是隱藏的。
touch /.autorelabel #重新打標籤,若selinux是開啟的則需要執行此步驟
exit 退出系統
reboot 重啟

⑤如果修改密碼上面提示是亂碼則進行以下操作其中之一再修改密碼。

localectl set-locale LANG=zh_CN.utf8

#設定系統語言為中文

localectl set-locale LANG=en_US.utf8

#設定系統語言為英文