2011年12月2日金曜日

S2Eで内部記憶領域(mmcblk0)を開放

購入した当時(2010年10月)は余裕のスペックだったAndroid G2だが、一年以上経過して色々とアプリケーションを詰め込んだ結果内部記憶領域(/dev/mmcblk0p*)がじわじわと足らなくなってきた。そりゃ初代G1に比べれば余裕はあったが、動作がもったりしてきた感じは否めなかったのでS2Eを使ってアプリケーションをsd-ext(/dev/mmcblk1p2)に移動させることにした。

当初は簡単だろうと思ったのだが(だってS2Eはsimple2extの略だから)いろいろとハマってしまったのでここにコツを記録しておく。

1. まずアプリケーションは本体に戻しておく
Google方式でSD側に動かしたアプリケーションは本体記憶に戻しておくこと。Settings→Applications→Manage Applications→SD Cardから操作。これにより本体記憶は一層キツくなるがAndroid自体の動作はかなり軽くなる。

2. CM使ってる場合はSDへのアプリ設置を抑止
Settings→CyanogenMod settings→Application→Allow application movingを抑止。同Install locationをInternalに。

3. 死にたくなければROMをバックアップ
ROMManagerから

4. 後悔したくなければSD Cardをバックアップ
母艦につないでtarで。

5. SD Cardのパーティション
ここが一番ハマるところ。sd-extをext4でフォーマットしろ、みたいなことをS2E作者も言ってるが、/etc/init.d/05partitionsdを見ればわかる通りCM7.1はext3でsd-extをマウントする。で、Recoveryの種類によってはsd-extをext4でフォーマットしたりext2でフォーマットしたりする。ClockworkModの5系はext4なのでアウト。

確実なのは母艦からadbで接続して、partedコマンドでパーティションを切ること。ここを見れ。

当然、S2Eのext4オプションも外すこと。

6. 一度目の再起動は妙に時間がかかる
S2EはOS起動前に/data/appの中身を/sd-ext/appの下に移動して/data/appからリンクを張る。この動作は再起動後ベンダーのロゴが出た状態で数分間続く。固まった、と思って電池抜くと悲惨なことになるので注意。

7. やり過ぎは無意味
S2Eは/data/app以外に/data/dataやらCacheやらもsd-extに移動できるようになっているが、これをやると性能が落ちる。/data/appだけなら性能劣化はほとんど実感できない。(Google方式でアプリケーションをSDに持って行くと重くなるのも同様の理由と思われる。)

結果、本体側1.2GBのうち、アプリケーションが占めていた500MBほどをsd-extに移動することができた。まだしばらくはG2でやっていけそうだ。Quadrantの改善は見られないが、アプリケーション切り替え時のサクサク感が戻った。あと、電池消耗も減ってる。


0 件のコメント:

コメントを投稿