Linux-系統啟動與MBR扇區修復


1.系統啟動過程

Linux系統啟動過程分為五步。

graph TD A[BIOS啟動,硬件自檢] --> B[讀取MBR扇區,獲取內核文件路徑] B --> C[通過GRUB代碼,獲取內核] C --> D[內核加載,調度硬件] D --> E[init進程,系統啟動的第一個程序]

1.1 MBR扇區

MBR扇區位於磁盤的第一扇區,一個扇區512字節。系統啟動時候會最先讀取MBR扇區,獲取系統啟動必要文件路徑。MBR扇區中包含三個部分,446字節的引導代碼(grud),64字節的分區表(4個主分區信息)和2字節結束標志。MBR分區表的損壞會導致系統無法正常啟動,因此需要備份MBR扇區,防止由於MBR扇區的損壞導致系統的啟動異常。

1.2 MBR扇區的備份與還原

系統啟動盤的MBR扇區修復思路如下:

image

由於MBR扇區中包含着主分區表信息,所以當硬盤主分區變化時,MBR扇區的數據也會發生變化,所以當分區過后應當及時備份MBR分區表。防止修復后導致分區表信息錯誤,后導致數據丟失。

1.3 修復MBR

使用lsblk查看硬盤分區情況。

image

系統中系統盤為sda,數據盤為sdb掛載在目錄/data下。掛載有光驅sr0,其中有centos的系統鏡像。

1.3.1 dd備份MBR信息

由於sda是系統啟動盤,所以其mbr扇區數據應當備份至其他盤中。因為當MBR扇區損壞時,讀取自身磁盤中的數據較為困難

[root@localhost ~]# dd if=/dev/sda  of=/data/abc.bak bs=512 count=1 ## 將sda的第一個512字節塊(MBR扇區數據)復制到abc.bak中
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000478688 s, 1.1 MB/s

將/dev/zreo中的數據拷貝至sda的MBR扇區中,以達到模擬破壞MBR扇區的效果。

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1

重啟系統。

1.3.2 光驅啟動修復

當系統啟動盤的MBR扇區破壞讀取失敗時,當光驅中有系統文件時時會自動進行光驅啟動(也可使用u盤)。

image

進入救援模式
image

回車
image

選擇后可獲得shell。
image

在shell中輸入圖中指令即可完成sda的MBR扇區修復。
image

重啟后,可正常進入系統

image

1.4 grub故障修復

grub故障主要是由於/boot/grub/grub.conf文件遭到破壞導致,當grub文件遭到破壞的時候,進入系統后會出現以下狀況。

通過備份grub.conf文件,在開機時進入救援模式,恢復備份的grub.conf文件即可完成修復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM