dd 会复制半块吗?

dd 会复制半块吗?

我正在使用此命令覆盖硬盘的数据:

sudo dd if=/dev/zero of=/dev/sdc bs=10M status=progress conv=fsync

如果我的硬盘大小不能被10M整除,dd会中止还是会覆盖末尾?

例如如果大小是10001M。会覆盖最后1M吗?即使它小于废话

答案1

它将尝试读取 10 MB 的块,但如果读取时间较短,它只会写入一个类似的短块并继续。不过,它会复制所有内容,除非您使用count=N限制它读取和写入的块数。

例如,这里的输出0+2意味着没有完整的块被读取或写入,但有 2 个部分块被读取或写入,总共 8 个字节,如输入所示。

$ (echo foo; sleep .3; echo bar) | dd bs=512 | wc -c
0+2 records in
0+2 records out
8 bytes copied, 0.301053 s, 0.0 kB/s
8

在 Linux 上的磁盘分区设备上,读取和写入的块大小并不重要,因此除了进度显示之外,您可以直接运行 cat < /dev/zero > /dev/sdc。如果有的话pv可以用pv < /dev/zero > /dev/sdc

这里有很多关于dd实际行为的帖子,请参阅例如

相关内容