Block-Device

解除安裝 HTC 設備需要很長時間

  • January 15, 2012

不確定是否應該在Android SE上發布此內容,因為我認為這與 Android 作業系統沒有直接關係。在我的系統上,我使用以下選項手動mount和我的 HTC 設備: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

這個時間與修改的數據量成正比嗎?無論如何解除安裝它需要這麼長時間嗎?

這與核心進行大量緩衝有關,包括緩衝對設備的寫入。

如果您發出:

cp large_file /mnt/htc/

cp將在完成write數據後立即返回,但(對於相當“慢”的設備/連接)遠在實際寫入數據之前。(除非cp您使用的工具本身發出問題fsync或類似的呼叫來等待實際數據到達驅動器 - 一些圖形文件管理器會這樣做,一些工具可以使用選項來控制它們是否這樣做。)

unmount在它“分離”設備之前刷新寫入緩衝區,這樣您就不會失去數據。如果核心緩衝了大量數據,可能會花費很多時間,並且實際寫入速度很慢。

嘗試在執行複制時在終端中執行類似iostat 2(的一部分)之類的東西,然後您應該會看到 write I/O 直到該點返回。sysstat``unmount``unmount

引用自:https://unix.stackexchange.com/questions/29129