Linux

使用 /dev/urandom 擦除設備時使用“同步”

  • June 13, 2018

sync使用擦除 USB 或任何設備時,是否有必要使用命令將記憶體寫入同步到持久儲存/dev/urandom

這是一種常見的做法,即dd if=/dev/urandom of=/dev/sdx && sync.

但這真的有必要嗎?可以省略sync命令嗎?

請注意這個問題不是指實用程序的conv=sync選項dd,它指的sync是一個獨立的命令,也可以在dd. 這是對sync的引用,這裡是對conv=sync的引用。兩者都來自https://www.kernel.org/doc/man-pages/

謝謝

sync未專門使用,因為/dev/urandom涉及;它用於確保所有掛起的寫入都已發送到​​設備。這在使用可移動設備時尤其重要:執行sync並等待它完成,確保可以安全地刪除設備。

擦除設備時,如果省略sync並斷開設備連接,則可能尚未完成擦除設備…

sync()呼叫與文件系統有關 - 與設備無關。

如果您寫入塊設備,sync()可能會導致緩衝區刷新,但如果您使用原始設備(如本例中所推薦的那樣),sync()則沒有任何意義。

警告:在 Linux 上,可能很難找到相關的原始設備。查看 Linux 文件以了解如何獲取相關的原始設備。

引用自:https://unix.stackexchange.com/questions/449531