dd 函數完成後似乎凍結

dd 函數完成後似乎凍結

我正在嘗試使用以下命令將 iso 複製到 USB 記憶棒上:

sudo dd bs=4M if=lubuntu-17.04-desktop-amd64.iso of=/dev/sdc status=progress 

這是非常簡單的。 iso大小為912M。為什麼輸出文字會凍結在這裡而不是結束程式?

956301312 bytes (956 MB, 912 MiB) copied, 11.216 s, 85.3 MB/s

我什至無法阻止程式運行ctr-c

答案1

您看到的行為只是dd在操作後同步磁碟上的資料。為了優化 IO 操作,Linux 通常讀取比請求更大的資料區塊(預讀)並延遲寫入,以便將它們組合起來(髒快取)。在操作結束時,要么dd同步磁碟上的文件,要么內核隱式執行此操作,並且進程保持活動狀態,直到所有寫入完成。

如果機器上沒有其他大量 IO 操作,您應該能夠透過查看「髒:」值來估計還剩多少資料要寫入/proc/meminfo- 這是待寫入磁碟的資料總量。

系統在任何時候都可以在記憶體中保留未寫入的資料量可以透過以下 sysctl 調節旋鈕進行控制。預設僅使用比率。您可以以百分比(比率)或位元組為單位定義該值。

vm.dirty_background_ratio
vm.dirty_ratio
vm.dirty_background_bytes
vm.dirty_bytes

您可以在這裡找到這些參數的官方文件:

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

相關內容