Partition

使用 dd 來保存和恢復引導扇區?

  • August 19, 2020

通過一些遺留程式碼,在將系統的 .iso 解壓縮到硬碟驅動器(從 live cd 中)後,我使用 dd 保存和恢復(部分)引導扇區。

我使用以下命令保存 mbr(前 446 個字節,因此除分區表之外的所有內容):

dd if=/dev/sda of=/mnt/mbr.bin bs=446 count=1

然後我恢復硬碟的.iso,然後使用以下命令恢復引導扇區:

dd if=/mnt/mbr.bin of=/dev/sda bs=446 count=1

現在,由於我遇到的問題是,在我只安裝了 windows xp 之前,在使用上述方法之後,它讓我可以在 linux 啟動和 windows xp 啟動之間進行選擇,我想那裡出現了嚴重錯誤。

我的問題是:上面的這兩個命令是否足以保存然後恢復引導扇區?

MBR 基本上是硬碟驅動器第一個扇區上的 512 字節段,它由 3 部分組成:引導程式碼(446 字節長)、分區表(64 字節長)和引導程式碼簽名(2 字節長)。不知道你那邊出了什麼問題,但這對我有用:

這將明確地備份引導程式碼本身,而不是其他:

$$ root@host $$# dd if=/dev/sda of=/tmp/mbr.img_backup bs=446 count=1

接下來,您要清除 MBR,包括您不希望與引導程式碼簽名一起保存的分區表:

$$ root@host $$# dd if=/dev/zero of=/dev/sda bs=512 count=1

現在您恢復啟動程式碼:

$$ root@host $$# dd if=/tmp/mbr.img_backup of=/dev/sda bs=446 count=1

引用自:https://unix.stackexchange.com/questions/252509