很多人Android手機用了一段時間,開始覺得手機越來越慢,所以有些人認為回復出廠預設值就好了。的確,很多時候,檔案系統在長時間使用會開始產生碎裂化。當然,碎裂化可能不是手機變慢的唯一因素,但有可能是主因之一。
我以我新買的手機為例,大約3周,檔案系統 ext4 碎裂化情況已達到 12.4%,這個數值怎麼測的呢?首先把你的手機重新開機到 recovery mode,然後連結 adb shell到手機,使用 e2fsck 檢查分割區,因為在recovery mode,所以這些分割區沒有被 mount,可以來檢查。以我的手機為例,
e2fsck -c /dev/block/mmcblk0p6 (這是我手機的 /data分割區的 partition,因手機而異)
天啊,超出我的預期,才三周而已,竟然高達 12.4%不連續了,所以碎裂化的確是存在的,尤其是 /data分割區,其他的像是 /system 分割區是唯讀,所以不意外的是 0.0%的不連續。
當然目前 ext4 格式可以處理某些程度的不連續,但是長期使用的話,勢必會在 cpu loading (檔案系統也是要花cpu計算的),在效能上慢慢耗掉。這是個時間遲早的問題而已。
所以我提出一個可以 defrag 的方法,讓這些不連續降到最低,而且避免 NAND Flash wear out。
1. 首先,進入 CWM Recovery,把你目前的系統備份起來。這個備份檔案是以檔案為基礎的。
2. 使用 CWM 把 /data分割區格式化,格式化才能重建檔案系統,光靠刪除或是覆蓋是沒有辦法把 ext4的 extents/htree/inode重建好的。
3. 再使用 CWM 把剛剛的備份檔案還原回去,因為是剛格式化過的檔案系統,所以檔案會逐一的排列下來,而避免不連續。
4. 重新開機。
這樣,就不需要回復出廠設置,花很多時間再把軟體重新安裝,也可以把檔案系統的碎裂化降低到某一個程度。
免責宣告:這些步驟可能會損毀你的手機,如果裡面的專有名詞不太熟悉,強烈建議你不要操作。

X