Partition
使用 dd 來保存和恢復引導扇區?
通過一些遺留程式碼,在將系統的 .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