ノート

ノート

Arch Linux Wikiから:https://wiki.archlinux.org/index.php/USB_flash_installation_media

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

[...]するいいえUSBドライブを取り外す前に同期は完了していません。

知りたい

  • それは何をしますか?
  • 省略するとどのような結果になりますか?

ノート

ddオプションのコマンドで使用されるコマンドstatus=progress:

tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync

またはpv発展のために

tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync

答え1

ddUSBデバイスに書き込むとカーネルディスクキャッシュがバイパスされないため、完了時に一部のデータがスティックに書き込まれていない可能性がありますddUSBこの時点でスティックを取り外すと、スティックUSBの内容が一致しなくなります。したがって、システムがUSBそのスティックから起動しない可能性があります。

Syncまだキャッシュ内のすべてのデータをデバイスにフラッシュします。

syncfdatasync dd電話する代わりに変換オプションを使用できます。

データ同期

完了する前に物理的に出力ファイルデータを書き込む

あなたの場合、コマンドは次のとおりです。

tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync

システムコールは、転送が終了する前に効果的に呼び出されますconv=fdatasync(ソースによって確認されました)。ddfdatasync()dddd

これはdd、明示的に指示しない限り、キャッシュがバイパスまたはフラッシュされないことを確認します。

答え2

sync(1) のマニュアルページから: 「同期化 - キャッシュ書き込みを永続ストアに同期する」。デフォルトでは、syncすべてのデータがキャッシュからスティックとして書き込まれていることを確認します。

関連情報