dd 立即完成但实际上需要同步

dd 立即完成但实际上需要同步

我使用 dd 将 iso 复制到 USB 驱动器。我有一个 SSD,因此读取速度非常快,但是我有一个 USB 2.0 驱动器,速度最高为 480 Mbps,但它显示复制速度为 404 MB/s,这是不可能的。我需要sync在之后做dd。我在 dd 中使用了同步标志,但没有帮助,我该怎么办?

$dd if=ubuntu-13.10-server-amd64.iso of=/dev/sdb bs=1M conv=sync,noerror
672+0 records in
672+0 records out
704643072 bytes (705 MB) copied, 1,74625 s, 404 MB/s

这是我的内核:

$ uname -a
Linux C3PO 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

答案1

conv=sync不激活同步输入或输出:

使用 NUL 填充每个输入块至 ibs 大小;与 block 或 unblock 一起使用时,使用空格而不是 NUL 填充

相反,你可能想尝试conv=fdatasync

在完成之前物理地写入输出文件数据

更直观的当然是oflag=sync

dsync – 使用同步 I/O 来传输数据

同步 – 同样,也适用于元数据

来源:man 1 dd

相关内容