conv=f​​sync 在 dd 命令行实用程序中的作用

Ton*_*ker 12 dd 14.04 copy

我正在将 yocto build linux 映像从 Ubuntu 14.04 系统复制到 SD 卡。命令是:

$ sudo dd bs=4M if=filename.rpi-sdimg of=/dev/sdX conv=fsync
Run Code Online (Sandbox Code Playgroud)

这里的什么意思

conv=f​​sync

我从这里变红

在完成之前同步输出数据和元数据。这会强制对输出数据和元数据进行物理写入。

但我不明白这一行。同步、元数据是什么意思,如果我不将它包含在命令中会产生什么影响。

它与只同步输出数据的 fdatasync 有何不同。

小智 13

一些设备使用缓冲区和缓存来提高它们的吞吐量和延迟性能。此命令使设备刷新其缓冲区和缓存,以便如果设备被移除,则在操作标记为完成之前将数据写入其中,并将控制权传递回终端提示。