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