Linux USBドライブ書き込みキャッシュ

Linux USBドライブ書き込みキャッシュ

Linuxカーネルが外部ストレージと外部ストレージキャッシュをどのように処理するかを変更する方法はありますか?何かをコピーするたびに、ユーザースペースでコピープロセスが非常に速いようです。ファイルをコピーするときにこの動作を何度も見ましたが、ddデータをドライブに直接コピーしてもこの現象が発生することを確認しました。したがって、ここには何もインストールされていません!

.iso イメージをコピーします。

$ sudo dd if=/mnt/mountpoint/Fedora-Live-Workstation-x86_64-23-10.iso of=/dev/sdc
2869248+0 Datensätze ein
2869248+0 Datensätze aus
1469054976 Bytes (1,5 GB) kopiert, 13,8922 s, 106 MB/s
$ sync

最初のコマンドは13秒かかりますが、2番目の同期ステップは約90秒かかります。

キャッシュに多くのデータ(1.3 GB以上)が保存されているのはなぜですか?この動作を避けることはできますか?

編集する:

これがあなたと関係がある場合。私はUSB 2.0 USBドライバであるUbuntu 15.10 4.2.0-34-generic標準カーネルを使用しています。

ベストアンサー1

sudo dd bs=10M oflag=direct conv=fsync if=yourfile of=/dev/sdc

oflag=directオペレーティングシステムのキャッシュをバイパスしてconv=fsync終了する前に、すべての内容が記録されていることを確認してください。

データはディスクに直接書き込まれるため、デフォルトの動作であるバイト単位の書き込みに時間を浪費しないようにするには、一度に大量のデータを書き込む必要があります。を使用してこのパラメータを制御できますbs=yoursize

ddバージョンが十分に新しい場合は、追加してstatus=progress素晴らしい進行状況バーを取得することもできます。

おすすめ記事