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
dd
USB
デバイスに書き込むとカーネルディスクキャッシュがバイパスされないため、完了時に一部のデータがスティックに書き込まれていない可能性がありますdd
。USB
この時点でスティックを取り外すと、スティックUSB
の内容が一致しなくなります。したがって、システムがUSB
そのスティックから起動しない可能性があります。
Sync
まだキャッシュ内のすべてのデータをデバイスにフラッシュします。
sync
fdatasync
dd
電話する代わりに変換オプションを使用できます。
データ同期
完了する前に物理的に出力ファイルデータを書き込む
あなたの場合、コマンドは次のとおりです。
tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
システムコールは、転送が終了する前に効果的に呼び出されますconv=fdatasync
(ソースによって確認されました)。dd
fdatasync()
dd
dd
これはdd
、明示的に指示しない限り、キャッシュがバイパスまたはフラッシュされないことを確認します。
答え2
sync(1) のマニュアルページから: 「同期化 - キャッシュ書き込みを永続ストアに同期する」。デフォルトでは、sync
すべてのデータがキャッシュからスティックとして書き込まれていることを確認します。