【问题标题】:Write partial data from MBR.bin to a sector in USB将 MBR.bin 中的部分数据写入 USB 中的扇区
【发布时间】:2015-05-10 19:05:26
【问题描述】:

DD 是 linux 的一个工具,可以将 MBR.bin 中的部分数据写入 USB 的扇区(而不是写入整个扇区)。现在我需要在 Windows 中做这样的事情。 windows有一个DD,不过好像会写一整个扇区!

我需要将 mbr 文件的前 440 个字节写入 U 盘。 linux中的代码是:

dd if=mbr.bin of=/dev/sd<X> bs=440 count=1

在 Windows 中它将是:

dd bs=440 count=1 if=mbr.bin of=\\.\<x>:

其中 x 是卷字母。但是在windows中会导致USB损坏,需要格式化USB。似乎它写入了整个数据。我该如何解决这个问题?

【问题讨论】:

    标签: windows command-line usb dd


    【解决方案1】:

    复制一个完整的块!

    例如对于 512 字节的块大小 (512-440=72)

    copy mbr.bin mbr.full
    dd bs=1 if=\\.\<x>: skip=440 seek=440 of=mbr.full count=72
    dd bs=512 if=mbr.full of=\\.\<x>: count=1
    

    【讨论】:

    • 不,它不工作 :( 再次它会使 USB 损坏,必须格式化!
    • 我需要将 mbr.bin 的前 440 个字节写入 USB 导出的扇区 0。刚刚执行了你的脚本,它工作正常,但似乎正在将整个扇区写入 USB,它会使 USB 损坏。
    • 当然会写入整个扇区:前 440 个字节来自 mbr.bin,其余来自现有数据,即不变。为此,您必须使用正确的块大小。
    • 是的:您使用 google 来了解如何确定 USB 的块大小,或者您在这里提出另一个问题。有了结果,你回到我的答案。
    • 你的 USB 是什么文件系统?如果是 NTFS,请使用 stackoverflow.com/questions/9465451/…
    【解决方案2】:

    您确定正确传递参数吗?也许win版本期望它是/bs=440。只是一个猜测。还是不能将文件截断为 440 字节?

    【讨论】:

      猜你喜欢
      • 2014-06-25
      • 2014-12-21
      • 2012-08-18
      • 1970-01-01
      • 2019-12-05
      • 2013-06-01
      • 2021-06-06
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多