Linux下手動備份還原硬盤主引導記錄MBR跟硬盤分區表DPT教程
最近奶牛一直在折騰linux下的grub跟grub2,因為前陣子用ghost恢復windows的時候出現錯誤,導致分區表被破壞,無法進入系統。今天給大家介紹下如何備份跟還原我們的硬盤主引導扇區。首先我來介紹下這個硬盤主引導扇區,因為對於這個主引導記錄MBR跟這個硬盤分區表DPT的關系,可能有的朋友還不是那么清晰。
硬盤主引導扇區(硬盤的前512字節) = 硬盤主引導記錄(MBR,硬盤的前446字節)+ 硬盤分區表(DPT,MBR后面的66字節)
MBR 446字節(0000–01BD),DPT 64字節(01BE–01FD),結束標志2字節(55 AA)
其中的這個結束標志很重要,如果缺失的話會導致系統無限次重啟。
這個主引導記錄MBR呢就是我們通常所說的引導程序的一部分,不管是windows還是linux系統,都要在這里寫入一部分引導程序。但是這部分引導程序僅僅只是引導程序的一部分,就拿grub的最新版本grub2來說吧,通過mbr引導grub2,然后grub2的引導程序會通過引導來繼續到硬盤上的/boot/grub/目錄下繼續進行引導,這里奶牛會在硬盤或者U盤安裝grub的時候說明。
說過MBR,我們再來說說分區表,分區表DPT是在MBR之后的66個字節,最多可以有四個主分區或者三個主分區加一個邏輯分區。而邏輯分區的信息會寫在擴展分區開始扇區上。所以,一般只要分區表DPT沒出問題,邏輯分區一般不會出問題。
硬盤的主引導扇區都介紹過了,下面說說具體的備份與還原的方法。
這里奶牛是用ubuntu linux下的dd命令來完成的。
備份硬盤的主引導扇區:
dd if=/dev/sda of=./mbr.bak bs=512 count=1
說明if是輸入設備,我們這里把第一塊硬盤作為輸入設備,這里大家需要注意下,有些硬盤不是sda而是hda,大家可以通過
sudo fdisk -l
來查看自己是sd的硬盤還是hd的硬盤。
of為輸出的文件名,這里我們輸出到了當前目錄下的mbr.bak文件中了,大家可以通過pwd命令來查看當前目錄的位置。
我們也可以規定它的輸出位置為/boot/下,命令為
dd if=/dev/sda of=/boot/mbr.bak bs=512 count=1
還原也用同樣的方法
dd if=/boot/mbr.bak of=/dev/sda bs=512 count=1
如果你僅僅要恢復分區表DPT
dd if=/boot/mbr.bak of=/dev/sda bs=1 skip=446 count=66
判斷我們備份是否正確的方法是查看備份文件mbr.bak是否為512字節,且結束字節為55 AA。
這里奶牛建議各位經常用ghost還原的朋友,最好將備份文件多存幾處備份,因為想一下,如果分區表錯誤了,我們的分區信息可能都無法讀出,所以存在硬盤內的分區表備份可能也就無法拿來還原了。所以嘛,多存網上或者U盤內一份備份奶牛覺得是有必要的。希望本文對大家有所幫助。