当使用 将 ISO 映像写入 USB 闪存驱动器时dd
,我如何知道我可以移除该棒?显然,我会等到命令完成并返回终端提示符。但即便如此,设备可能仍然因缓存/缓冲区而繁忙。因为我正在写入设备本身,所以没有安装任何东西,所以我也不会调用umount
并且无法查看设备是否仍然繁忙。
我见过dd ... && sync
几次了。但这不会阻塞直到缓冲区全部媒体已被写入?不仅仅是我使用的一个闪存驱动器dd
。那么如果我有很多其他写入进程,那不会阻塞吗?
请问conv=
争论有dd
帮助吗?但conv=sync
, conv=fsync
, conv=fdatasync
, ...中的哪一个?
答案1
和中对fsync
和进行了简短描述,并在 中提供了更多详细信息。fdatasync
man dd
info dd
如果我不想使用单独的和全局的sync
,我会使用conv=fsync
in,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
电话。