2

KVM/QEMU 上で実行されている ARM 仮想マシンがあり、ファイルがルート ファイルシステムとしてマウントされています。VM にはネットワークがないため、ルートを NFS マウントすることは問題外です。私は IO の特定のトランスポート メカニズムをテストしているので、自分が持っているものに固執しています。

ファイルをゲストに送信したいので、ファイルをホストにマウントし、ファイルに書き込み、マウントを解除して強制的にフラッシュします。ファイルシステムの内容は些細なもので、バックアップも取っているので、破損しても問題ありません。同様に、パフォーマンスも問題ではありません。

問題は、このマウント-書き込み-アンマウントを行うと、ゲストがファイルを認識しないことです。これはカーネルのファイルシステム キャッシュの結果であり、ls を実行してもファイルが存在しないためだと推測しています。ファイルシステムに関するメタデータはメモリにキャッシュされており、ファイルシステムの更新は表示されないと思います。

ファイルシステムのキャッシュを無効にすると、すべての読み取りが強制的にディスクに書き込まれ、ファイルシステムがヒットし、ファイルが表示されると思います。任意のヒント?

4

1 に答える 1

2

私はこれを考えることができます:

sync
echo 3 > /proc/sys/vm/drop_caches

この:

qemu -drive cache=none,file=file.img
于 2012-04-15T02:08:46.147 に答える