使用dd从特定位置开始写入数据

时间:2013-03-06 02:53:31

标签: linux

我想使用dd从磁盘上的特定位置(基本上跳过前50000字节)开始写入数据,并在前50000字节后开始写入。我试过这个

= / dev / disk1 if = / dev / random seek = 50000

我让上面一行运行几分钟然后当我取消它时,我得到了这个

0 + 6条记录 0 + 0记录输出 复制0字节(0 B),79.2458 s,0.0 kB / s 在我看来没有被复制。我做错了吗?

1 个答案:

答案 0 :(得分:9)

来自dd docs

‘seek=n’

Skip n ‘obs’-byte blocks in the output file before copying. 
if ‘oflag=seek_bytes’ is specified, n is interpreted as a byte 
count rather than a block count. 

所以看起来你想要这个:

dd of=/dev/disk1 if=/dev/random obs=50000  seek=1

或者这个:

dd of=/dev/disk1 if=/dev/random oflag=seek_bytes  seek=50000

另一件事是,如果内核池为空,/dev/random将阻塞。您可以尝试使用/dev/urandom,当池为空时,将使用其他方法生成数字而不会阻塞:

dd of=/dev/disk1 if=/dev/urandom oflag=seek_bytes  seek=50000