![conv=fsync 在 dd 命令行实用程序中的作用](https://linux22.com/image/1013959/conv%3Df%E2%80%8B%E2%80%8Bsync%20%E5%9C%A8%20dd%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8.png)
我正在将 yocto 构建的 linux 映像从 Ubuntu 14.04 系统复制到 SD 卡。命令是:
$ sudo dd bs=4M if=filename.rpi-sdimg of=/dev/sdX conv=fsync
这里的意思是
conv=fsync
我从这里
在完成之前同步输出数据和元数据。这会强制对输出数据和元数据进行物理写入。
但是我不明白这一行。同步、元数据是什么意思,如果我不在命令中包含它,会有什么影响。
它与仅同步输出数据的 fdatasync 有何不同。
答案1
某些设备使用缓冲区和缓存来提高吞吐量和延迟性能。此命令使设备刷新其缓冲区和缓存,这样如果设备被移除,数据就会在操作被标记为完成并将控制权交回终端提示符之前写入设备。