使用 /dev/urandom 擦除设备时使用“同步”

使用 /dev/urandom 擦除设备时使用“同步”

sync使用 擦除 USB 或任何设备时,是否有必要将缓存的写入与命令同步到持久存储/dev/urandom

这是一种常见的做法,即dd if=/dev/urandom of=/dev/sdx && sync

但这真的有必要吗?可以省略这个sync命令吗?

请注意这个问题不是指实用程序conv=sync的选项dd,而是指sync作为一个独立的命令,也可以与dd.这里有一个参考同步,这里引用了转换=同步。两者都来自https://www.kernel.org/doc/man-pages/

谢谢

答案1

sync没有专门使用,因为/dev/urandom涉及;它用于确保所有挂起的写入已发送到设备。这在使用可移动设备时尤其重要:运行sync并等待其完成,可确保可以安全地删除设备。

擦除设备时,如果省略sync并断开设备连接,则可能尚未完成擦除设备...

答案2

sync()调用与文件系统相关,而不是与设备相关。

如果您写入块设备,sync()可能会导致缓冲区刷新,但如果您使用原始设备,如本例中所建议的,sync()则没有意义。

警告:在 Linux 上,可能很难找到相关的原始设备。查看Linux文档了解如何获取相关的原始设备。

相关内容