我想使用 dd 从磁盘上的特定位置(基本上跳过前 50000 字节)开始写入数据,并在前 50000 字节之后开始写入。我试着这样做
dd of=/dev/disk1 if=/dev/random seek=50000
我让上面的行运行了几分钟,然后当我取消它时,我得到了这个
0+6 records in
0+0 records out
0 bytes (0 B) copied, 79.2458 s, 0.0 kB/s
在我看来,没有任何东西被复制。我做错什么了吗?
我想使用 dd 从磁盘上的特定位置(基本上跳过前 50000 字节)开始写入数据,并在前 50000 字节之后开始写入。我试着这样做
dd of=/dev/disk1 if=/dev/random seek=50000
我让上面的行运行了几分钟,然后当我取消它时,我得到了这个
0+6 records in
0+0 records out
0 bytes (0 B) copied, 79.2458 s, 0.0 kB/s
在我看来,没有任何东西被复制。我做错什么了吗?
来自dd 文档:
‘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