-1

我有目标驱动器,我知道它被划分为 512b 扇区。我想将dd的 150b 文件传输到给定目的地的该驱动器,假设开始扇区 2099200,然后从同一位置扇区读取与文件大小 (150b) 完全相同的字节数。我试过这样的事情:

sudo dd if=my.txt of=/dev/sdb obs=512 seek=2099199

sudo dd if=/dev/sdb of=my.txt obs=150 count=1 ibs=512 skip=2099199

它几乎可以工作,但我不能让它只传输 150b:

1+0 记录中 3+1 记录中 512 字节 (512 B) 已复制

出了什么问题以及如何做我需要的?可能是我弄错了,其他一些解决方案会更好,但我需要独立于文件系统。

4

1 回答 1

2

man页面:

count=BLOCKS
   copy only BLOCKS input blocks

当您将文件从驱动器复制回来时,您将复制 512 字节,因为您使用该选项指定要在 512 字节块中复制的输入,ibs并且您使用该选项复制整个块count。相反,您可以指定要复制的块数作为您的ibs值:

sudo dd if=/dev/sdb of=my.txt ibs=150 count=1 skip=2099199

编辑:正如评论中指出的,这种方法需要重新计算跳过值。另一种选择是:

sudo dd if=/dev/sdb ibs=512 count=1 skip=2099199 | dd count=150 of=my.txt
于 2013-11-20T17:44:34.170 回答