質問: dd関数は完了時にフリーズしているようです 次のコマンドを使用して、usbメモリにisoをコピーしようとしています。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を使用してプログラムの実行を停止することもできません。
回答: 表示されている動作は、操作後のディスク上のデータの同期のみddです。 ioオペレーションを最適化するために、linuxは多くの場合、要求されたよりも大きなチャンクでデータを読み取り(先読み)、それらを組み合わせることができるように書き込みを遅らせます(ダーティキャッシュ)。オペレーションの最後に、 ddはディスク上のファイルを同期するか、カーネルが暗黙的に同期し、すべての書き込みが完了するまでプロセスはアクティブなままです。マシンに他に大量のio=操作がない場合、/proc/meminfoの "dirty:"値を確認することで、書き込むデータの量を見積もることができます。これは、ディスクへの書き込みが保留されているデータの合計量です。システムがいつでもメモリに書き込まれずに残すことができるデータの量は、次のsysctl調整ノブで制御できます。デフォルトでは、比率のみが使用されます。値はパーセント(比率)またはバイトで定義できます。vm.dirty_background_ratio vm.dirty_ratio vm.dirty_background_bytes vm.dirty_bytes これらのパラメータの公式ドキュメントは次の場所にあります。 https://www.kernel.org/doc/documentation/sysctl/vm.txt