GNU/Linux >> Linux の 問題 >  >> Linux

起動可能なLinuxUSBスティックを作成するときに同期が非常に重要なのはなぜですか?

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になります fdatasync()を効果的に呼び出す ddの直前の転送終了時のシステムコール 終了します(これをddで確認しました のソース)。

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


Linux
  1. xtermを使い続ける理由

  2. LinuxコマンドラインからLinuxブータブルUSBを作成する方法

  3. Linux ISOをUSBスティックに配置し、Macで起動できるようにする方法

  1. MAC上の.isoファイルを使用してPCで起動可能なUSBスティックを作成する

  2. WindowsでLinuxの起動可能なUSBスティックを作成する方法

  3. Linux – Uefi / biosで動作するのにUsbがLinuxで動作しないのはなぜですか?

  1. Linux用の起動可能なUSBドライブを作成する方法

  2. Linux – USBスティックの検出に時間がかかるのはなぜですか?

  3. USB が UEFI/BIOS で動作するのに Linux で動作しないのはなぜですか?