この記事をここに投稿するかどうかはわかりません。Android SEこれは、これがAndroidオペレーティングシステムと直接関連していないと思うからです。私のシステムでは、次のオプションを使用してHTCデバイスを手動でmount
設定しました。umount
/etc/fstab
UUID=3465-3762 /mnt/htc auto gid=100,umask=002,noauto,user,rw,exec 0 0
この方法は、SDカードの少量のデータを修正するのにうまく機能しますが、他のデバイスからFLACでエンコードされた音楽アルバムのいくつかをコピーするたびにSDカードをマウント解除するのに時間がかかるようです。
$ time umount /mnt/htc/
real 1m17.195s
user 0m0.000s
sys 0m0.237s
この時間は変更されたデータの量に比例しますか?とにかく削除するのにこれほど時間がかかりますか?
答え1
これは、デバイスへの書き込みバッファリングを含む多くのバッファリングを実行するカーネルに関連しています。
発行する場合:
cp large_file /mnt/htc/
cp
データが完了するとすぐに返されますがwrite
(かなり「遅い」デバイス/接続の場合)、データが実際に書き込まれる前に返されます。 (cp
使用しているツールがfsync
実際のデータがドライブに到着するのを待つために独自に呼び出すか、または同様の呼び出しを行わない限り、一部のグラフィックファイルマネージャはこれを実行し、一部のツールはそれを実行するかどうかを制御します。できるオプションがあります。)
unmount
データが失われないようにデバイスを「分離」する前に、書き込みバッファをフラッシュします。カーネルが大量のデータをバッファリングすると、時間がかかり、実際の書き込み速度も遅くなります。
コピーおよび操作中に端末で次のタスクをiostat 2
(部分的に)実行してみると、そのポイントが返されるまで書き込みI / Oが表示されます。sysstat
unmount
unmount