最近の一つの流れである格安のスマホで問題となるのが内部ストレージが16GBのものが多いということです。この16GBが悩ましいところで節約して使えばなんとかなるため頑張ってしまうのですが、Android 6.0からはSDカードの任意の容量を内部ストレージに継ぎ足して使うことができるという夢のような機能が実装されています。しかし特に日本向けのスマホでは無効にされているものが多いようです。今回はこの機能が無効にされているスマホでSDカードを内部ストレージ化する方法と、その際によく発生するエラーの対処方法を紹介します。ちなみにroot化は必要ありません。
Androidスマホの多くはSDカードに対応しており、音楽や画像データなどは大容量のSDカードに保存すれば良いのですが、アプリは基本的にSDカードにインストールすることはできません。
アプリの一部をSDカードに移すことはできますが、アプリが対応していなければならない上にアプリの容量の半分も移すことができないものがほとんどです。しかもAndroid 6.0以前はまとめてSDカードに移すことができたのですが、Android 6.0からは1つ1つ面倒な操作をして移すことしかできません。そして、アップデートされると内部ストレージに戻ってしまいます。
しかし、Android 6.0 Marshmallow(マシュマロ)からは遂にSDカードを内部ストレージに継ぎ足すことができるようになりました。しかも任意の容量を!これは素晴らしい。ところが少なからず、この機能が無効にされているスマホがあります。私のXperia C5 Ultraもその一つです。Xperiaは大体だめみたいです。
そこでADBコマンドでこの機能の有効化を試みます。
ADBコマンド2つでSDカードを内部ストレージ化!
ADBコマンドを使えるようにする過程については今回は省略します。ググってください。WindowsでもMacでもできます。私はMacBookに環境を作っていますので、Mac OSで行っていますが、ターミナルにコマンドを打ち込むだけですのでWindowsでも同様です。
「adb shell」でadbコマンドのシェルに入った状態で「sm list-disks」とコマンドを入力します。
すると「disk:179,128」のような感じで表示されます。数値は端末によって異なることがあります。この例だと179は内部ストレージを指す数字で、128がSDカードを指す数字です。ちなみにSDカードをフォーマットしたりするとこの128が異なる数字になったりします。
次に「sm partition disk:179,128 mixed 75」などと入力します。
179,128は「sm list-disks」で表示された数値です。75はSDカードとして残す割合で、この場合はSDカードの25%を内部ストレージにするという意味です。私のSDカードは64GBですので、その25%の16GBを内部ストレージにしました。元々の内部ストレージの16GBと合わせて合計32GBに倍増されます。
実際には管理領域などの関係で綺麗に16GBをという訳ではありませんが、14.47GBが内部ストレージ化されていることがわかります。表示上は内部ストレージの16GBとSDカードの14.47GBで分けて表示されていますが、動作上は30.47GBの1つの領域として扱われます。
SDカードの内部ストレージ化で発生するエラーの原因はこれ!
ここまではググると多くの記事が出てくると思いますが、このコマンドを投入した時にエラーが発生するケースが多いようです。私の場合は「Error: java.lang.IllegalStateException: java.util.concurrent.TimeoutException: Thread Binder_9 gave up waiting for partitionMixed after 180000ms」とエラーになりました。180000ミリ秒=3分とあるようにコマンド入力から3分間待たされます。「端的にいえば処理が遅すぎて中止しました」という意味です。
時間をかけて調べましたが日本語では有力な情報を得られませんでした。渋々、英語のサイトやフォーラムを調べるとヒントがありました。
それは「SDカードの速度」とのことでした
試しにSDカードを変えてみるとあっさり成功しました。
SDカードに起因するのは確かのようです。私の場合は東芝のSDカードでは何度試してもダメ(1回だけ成功した)で、TEAM GROUPのSDカードは2枚とも何度試してもOKでした。うまくいかない方は他のSDカードで試してみると良いでしょう。ちなみにベンチマークを取ってみると東芝のSDカードはTEAM GROUPのSDカードに比べてリードで2/3、ライトで1/8くらいの速度でした。規格上は同じClass10 UHS-1なんですけどね。
ググっていると「~変えたらいけた」みたいなのが出てきますが、恐らくタイミング的にギリギリだったのがたまたま上手くいっただけだと思います。私も東芝のSDカードで1回だけ上手くいきまた。書いてあった事はもちろん試しましたがいずれも効果はありませんでした。SDカードに起因すると断定して良いと思います。
失敗したSDカードはパーティションの再作成を
一度失敗したSDカードはパーティションが分けられた状態になってしまっていてエクスプローラーなどでは16MBのSDカードになってしまいます。フォーマットもダメです。
Windowsの「ディスクの管理」で見るとこんな感じに3つのパーティションに分かれてしまっています。内部ストレージに割り振る分と管理領域とSDカードして残す領域でしょう。
これをマウスの右クリックメニューから「ボリュームの削除」で3つともに削除して、あらためて「新しいシンプルボリューム」でパーティションを作り直します。これでSDカードは元通りです。
SDカードを内部ストレージ化する時の注意点
まず、この処理ではSDカードは初期化されるます。SDカード内のデータ等はPC等にバックアップしておきましょう。
SDカードに移しているアプリは動かなくなるでしょうが、恐らく一度アンインストールして再インストールすれば良いでしょう。本当はそのあたりも試したかったのですが、上手く動かない時の試行錯誤の中で端末を初期化してしまいました。
既に元々の内部ストレージの容量をオーバーしていてSDカード部分を使用していますが、特に問題は感じません。スクリーンショットが撮れなくなるなどの不具合報告も目にしましたがスクリーンショットも撮れています。むしろAndroid 6.0にアップデートした時にUSB接続でPCからSDカード内が見えないという不具合に遭遇していたのですが、端末を初期化したからかSDカードをフォーマットしたからか直ってしまいました。
SDカードは内部ストレージに比べれば低速ですので、速度面で心配していたのですが、TEAM GROUPのSDカードが速いからか特にパフォーマンスの低下も体感できません。
内部ストレージ化したSDカードを抜いたらどうなる?
起動中にSDカードを抜いたら内部ストレージ化したSDカード側にインストールされているアプリはアイコンが消えたりグレーアウトされて起動できないようになりますが、他はそのまま普通に使用できます。再度SDカードを挿し直せばアイコンが元に戻って起動できるようになります。フリーズしたりするのかと思いましたがちゃんと制御されています。凄い。
すべてのアプリがSDカードにインストールできるわけではない
内部ストレージ化したSDカードは完全に内部ストレージと同じ扱いになるのだと思っていましたが、残念ながらそうではないようです。例えば、
KindleはこのようにSDカードにインストールされています。しかも書籍データも一緒にSDカードに保存されていますので、実に676MBも内部ストレージの容量が節約できています。その気になれば内部ストレージに移すこともできます。しかし、
グノシーは内部ストレージに保存されていて、ストレージの変更もできません。アプリの作りによるものだと思いますが、手持ちのアプリをざっと確認したところ、例えば容量の大きなゲームなどのアプリはほとんどがSDカードにインストールできるようになっていますので大助かりです。
ちなみに今回のSDカードの内部ストレージ化を実施しておくと、SDカードにインストール可能なアプリは自動的にSDカード側にインストールされます。素晴らしい!
あとがき
「わざわざ機能が無効にされているのは不具合があるからだ」という主張は至極自然だと思いますので、恐る恐る実行してみましたが今のところまったく問題はありません。今まではかなり節約しながら使っていてゲームなどはインストールしていなかったのですが、今ではいろいろなアプリをインストールしまくっています。電子書籍のデータもローカルに多く保持できるので非常に助かります。Xperia C5 Ultraはデザイン的に非常に気に入っているのですが、ストレージがきつくてそろそろ買い換えかなと思っていました。しかしこれで「あと10年は戦える(マ・クベ氏談)」(戦えない)
ではまた!
復活したコンパクト「Xperia XZ1 Compact」は「Xperia X Compact」から何が変わったのか?スペックを比較! | |
高解像度になったLTE対応「ZenPad 10(Z301MFL)」と従来機Z300CNLの違いを比較! | |
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか? |
ASUS ZenFone4 ZE554KL ムーンライトホワイト(Snapdragon 660/6GB/64GB/DSDS/5.5インチ/SIMフリー)【正規代理店品】