web-dev-qa-db-ja.com

ddを使用して起動可能なUSBを作成するのに適した方法はどれですか?

これ SBフラッシュインストールメディアoflag=syncを使用するようにガイドします:

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

...しかし、 itsfoss のような他の記事はsyncを使用するように私を導きます:

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

Ddのoflag=syncオプション、または別のsyncコマンドのどちらが優先されますか?

2
mja

この回答 部分的にあなたの質問に答える必要があります。基本的に、ddは、デバイスへの書き込み時にカーネルディスクキャッシュをバイパスしません。このoflagを使用すると、これらのディスク書き込みがディスクに同期されます。

syncコマンドと_oflag=sync_の両方が同じジョブを実行します。ここで私が見つけることができる唯一の違いは、 sync コマンドがすべてのディスクからすべてのキャッシュをディスクに書き込むため、他のディスクへの書き込みでかなり忙しいマシンは遅くなることです(あなたはそれを感じないかもしれません)応答。

syncドキュメントの引用:

説明

同期書き込みメモリにバッファリングされたデータをディスクに出力。これには、変更されたスーパーブロック、変更されたiノード、および遅延読み取りと書き込みが含まれます(ただし、これらに限定されません)。これはカーネルによって実装される必要があります。同期プログラムは、 sync(2) システムコールを実行するだけです。

1
user34720