|
发表于 2015-10-8 22:10:10
|
显示全部楼层
看了一下,dpt文件结构大致是这样的:
除了头部,它从110h开始记录硬盘首扇区和各分区首扇区的内容。每个扇区的记录相隔16字节。
这里假定各分区都是primary分区,不涉及扩展分区的情形。事实上U盘分区多是primary分区,扩展分区罕见。
primary分区越多,dpt文件越长,但分区顶多4个(不考虑gpt)。
可以统一按4个恢复,因为偏移skip超出dpt内容时dd命令自动失效。
代码大致如下(未试过,数据无价,目标盘要核准):
set dst=hd1
set src=(hd0,0)/my.dpt
dd if=%src% of=(%dst%)+1 bs=1 count=512 skip=0x110
dd if=%src% of=(%dst%,0)+1 bs=1 count=512 skip=0x320
dd if=%src% of=(%dst%,1)+1 bs=1 count=512 skip=0x530
dd if=%src% of=(%dst%,2)+1 bs=1 count=512 skip=0x740
dd if=%src% of=(%dst%,3)+1 bs=1 count=512 skip=0x950
|
|