当使用 dd 将 ISO 映像写入 USB 闪存驱动器时,我如何知道我可以移除该棒?

当使用 dd 将 ISO 映像写入 USB 闪存驱动器时,我如何知道我可以移除该棒?

当使用 将 ISO 映像写入 USB 闪存驱动器时dd,我如何知道我可以移除该棒?显然,我会等到命令完成并返回终端提示符。但即便如此,设备可能仍然因缓存/缓冲区而繁忙。因为我正在写入设备本身,所以没有安装任何东西,所以我也不会调用umount并且无法查看设备是否仍然繁忙。

我见过dd ... && sync几次了。但这不会阻塞直到缓冲区全部媒体已被写入?不仅仅是我使用的一个闪存驱动器dd。那么如果我有很多其他写入进程,那不会阻塞吗?

请问conv=争论有dd帮助吗?但conv=sync, conv=fsync, conv=fdatasync, ...中的哪一个?

答案1

和中对fsync和进行了简短描述,并在 中提供了更多详细信息。fdatasyncman ddinfo dd

如果我不想使用单独的和全局的sync,我会使用conv=fsyncin,dd因为它会在完成之前写入数据和元数据。从info dd

 ‘fdatasync’
      Synchronize output data just before finishing.  This forces a
      physical write of output data.

 ‘fsync’
      Synchronize output data and metadata just before finishing.
      This forces a physical write of output data and metadata.

答案2

dd命令完成后,运行sudo eject /dev/sd[drive letter].完成后,您可以随意删除它。数据将被同步。

答案3

这个答案到一个相关的问题似乎意味着这conv=fdatasync相当于sync那个dd电话。

相关内容