Androidで内部ストレージの容量不足に悩んでいるなら、SDカードが有効な解決策となります。
ただ純粋な内部ストレージではなく外部ストレージとして認識されるため、下記のような弱点があります。
- 内部ストレージからSDカードへ都度のデータ移行が面倒
- SDカードへアプリデータは保存できない
が、Android 6.0より実装された機能「Adoptable Storage」を使えば、SDカードを本体の内部ストレージとして利用(=SDカードの内部ストレージ化)して、この問題を解決できます。
本記事では、その手順を中心に、注意点やよくあるトラブルについて解説しています。
スマートフォンの容量不足にお悩みであれば、ぜひどうぞ。
内部ストレージ化でSDカードのデータは初期化されます。大切なデータが入っている場合、必ずバックアップを忘れずに。
SDカードを内部ストレージ化するメリット・デメリット
内部ストレージ化する手順を先に知りたい方は、コチラをタップして次パートへジャンプ。
SDカードを内部ストレージ化する特徴です。
それぞれカンタンに解説します。
メリット:内部ストレージの容量不足が解消される
OSレベルで純粋にSDカードを内部ストレージとして認識できるため、下記のような容量不足解消を実現できます。
- SDカードへのデータ移行が不要になる
- SDカードへアプリデータを保存できる
例えばゲームアプリの保存先をSDカードへ変更できる。
デメリット:SDカードのバックアップ機能が失われる
リスクはいろいろあり、特に把握しておくべきは下記3点です。
- 最初にSDカードが初期化される
- 内部ストレージ化したSDカードは別デバイスで見れない
- 相性が悪い機種では失敗する
最初にSDカードが初期化される
SDカードを内部ストレージ化する過程で強制的にフォーマットされるため、SDカード内のデータが初期化されます。
大切なデータが入っているなら、必ず事前のバックアップを忘れずに実施して下さい。
例えば、SDカードに写真がたくさん保存されている場合、
Googleフォトの設定→バックアップと同期→デバイスのフォルダのバックアップより、SDカード内のフォルダを選べばバックアップできる。
内部ストレージ化したSDカードは別デバイスで見れない
あるデバイスでSDカードを内部ストレージ化すると、そのデバイス以外(例:別のスマートフォン / パソコン)ではSDカードの中身を確認できなくなります。
別のAndroidに挿した例。使用するには初期化が必要となる。
そもそもAndroidでSDカードを活用するメリットは、大きく3点あります。
- 内部ストレージの容量不足を解消できる
- 端末以外の場所でファイルをバックアップできる
- SDカードを経由して別の端末へファイルを共有できる
1は内部ストレージ化で強化されますが、2の”バックアップ機能”と3の”共有機能”が失われることになります。
例えば内部ストレージ化を実行したデバイスが故障した場合、そのデバイス以外ではSDカードを読み取れないため、データを復活できなくなります。
相性が悪い機種では失敗する
SDカードの内部ストレージ化には相性があり、特にGalaxyシリーズは失敗する可能性が高いです。
Galaxy A20で内部ストレージ化に失敗し、SDカードが破損した例。
本記事のコメント欄でも、次の機種について「SDカードが破損した」・「コマンドを実行しても内部ストレージ化できない」等の報告がきています。
- Galaxy A20
- Galaxy Note8
- Galaxy Feel2
SDカードを内部ストレージ化する前提条件
すでに内部ストレージ化に必要な準備事項が整っている方は、コチラをタップして次パートへジャンプ。
今回紹介する「SDカードの内部ストレージ化」は機種依存の機能であり、通常は一部のAndroidでしか設定できません。
が、パソコンでadbコマンドを操作できれば、無理やりこの機能を開放して、基本的に全機種でSDカードを内部ストレージ化できます。
前パートで解説したとおり、SDカードの内部ストレージ化には相性があり、特にGalaxyシリーズは失敗する可能性が高いです。
本パートでは、事前の準備事項を解説します。
- Android 6.0以上であること
- パソコンでadbコマンドを使えること
- SDカードとUSBケーブルを持っていること
- AndroidでUSBデバッグを有効にすること
条件①:Android 6.0以上であること
SDカードを内部ストレージ化する機能「Adoptable Storage」はAndroid 6.0から導入されました。
お使いのAndroid OSバージョンを事前に確認して下さい。
例えば、設定の「端末情報」より確認できる。
条件②:パソコンでadbコマンドを使えること
お使いのパソコンでadbコマンドを使用できる環境を用意して下さい。
Windows・Macそれぞれにおける手順は関連記事で解説しています。
Windowsでadbコマンドを使う方法! Android SDKを入れてパソコンのコマンドプロンプトから操作しよう
この記事では、Windows PCでadbコマンドを使う方法を解説します。
Macでadbコマンドを使う方法! Android Studioを入れてmacOSのターミナルから操作しよう
この記事では、Macでadbコマンドを使う方法を解説します。
条件③:SDカードとUSBケーブルを持っていること
まだSDカードを持っていなければ、ご準備下さい。
またパソコンとAndroidを接続するケーブルも必要です。
AndroidのUSB端子の形状(micro USB / Type C)に合わせ用意しましょう。
条件④:AndroidでUSBデバッグを有効にすること
Androidの
adbコマンドを使用する事前準備は以上です。
SDカードを内部ストレージ化してアプリを移動する方法
このパートでは、SDカードの内部ストレージ化における基本的な手順として、次の2点を解説します。
- SDカードを内部ストレージとしてフォーマットする手順
- SDカードにアプリを移動する手順
(繰り返しになりますが)内部ストレージ化でSDカードのデータは初期化されます。大切なデータが入っている場合、必ずバックアップを忘れずに。
手順①:SDカードを内部ストレージとしてフォーマットする
記事中では、Xperia XZ(Android 8.0.0)とWindows 10を使って説明しています。
AndroidとUSBケーブルで接続したパソコン側で、adbコマンドを入力していきます。
Windows・Macで入力するコマンドに差異はありません。
まず下記コマンドを実行し、
adb shell続いて、下記コマンドを実行します。
sm list-disksすると「disk:179,64」のように数字が表示されます。
この数字部分は挿入したSDカードを指しており、種類によっては異なる場合もあるので各々確認して下さい。
続いて、下記コマンドを入力します(数字の部分は人によって異なります)。
sm partition disk:179,64 private環境によっては、このタイミングでAndroidが自動で再起動するケースがあります。
以上で操作は完了。
Android側で
作業前は外部ストレージだったSDカードが(左)、作業後は内部ストレージの一部として認識される(右)。
手順②:SDカードにアプリを移動する
変更先で SDカード を選び、移動 を実行します。
使用されているストレージが SDカード へ変わっていれば成功です。
すでにSDカードが内部ストレージ化された状態で新規アプリをインストールする場合、空き領域が最も多いストレージに自動的に配置されます。
純粋な内部ストレージが容量不足でも、自動でインストール先をSDカードに変更してくれる。
またアプリの更新も、いつも通り実行できます(アップデート後も保存先は外部ストレージのまま)。
保存先が外部ストレージのアプリを(左)、いつも通り更新できる(右)。
保存先を元の内部ストレージに戻したい場合も流れは同じで、使用されているストレージの 変更 から 内部ストレージ を選べばOK。
ボクの検証した限り、保存先を変更しても、アプリデータは初期化されませんでした(=セーブデータは維持されます)。が、内部ストレージ⇔SDカードの頻繁なアプリ移動は想定されない動作であり、リスクが高いため推奨されません。
補足:SDカードの内部ストレージ化&アプリ移動に関するアレコレ
このパートでは、SDカードの内部ストレージ化における細かい情報を補足します。
説明の流れ
補足①
補足②
SDカードの内部ストレージ化を解除して元に戻す方法
補足③
SDカードの一部領域のみ内部ストレージ化する方法
SDカードの一部分のみ内部ストレージとして利用し、残りは通常の外部ストレージとして割り当てる方法もあります。
まずadbコマンドで下記を実行し、
adb shellsm list-disks続いて内部ストレージ化のコマンドを実行します。
例えば次の割合でSDカードを分割したい場合、
- SDカードの60%:内部ストレージ化
- SDカードの40%:外部ストレージのまま
下記コマンドを実行すればOK。
sm partition disk:179,64 mixed 40このように「mixed ●」にて外部ストレージとして割り当てたいパーセンテージ%を入力すれば、1枚のSDカードで内部ストレージと外部ストレージを同時に使うことが可能です。
作業前と比べ(左)、作業後は内部ストレージと外部ストレージが混在して認識される(右)。
SDカードの内部ストレージ化を解除して元に戻す方法
元の状態にSDカードを戻すだけなら、パソコンは不要です。
Android側で
外部ストレージとしてフォーマット を実行します。
フォーマットでSDカードは初期化されるため、必要なデータはバックアップして下さい。アプリを外部ストレージへ移している場合、元の内部ストレージに戻すのを忘れずに(コチラをタップして、前パートで解説した手順へジャンプ)。
再び外部ストレージとしてSDカードが認識されていればOK。
SDカードにアプリを保存する際の注意点
主な注意点は3つあります。
- SDカードに移せないアプリもある(特にプリインストールアプリ)
- SDカードを抜くとアプリを起動できない
- 開発者向けオプション「外部ストレージへのアプリの書き込みを許可」について
それぞれカンタンに解説します。
SDカードに移せないアプリもある(特にプリインストールアプリ)
アプリによっては、内部ストレージ化したSDカードへ移せない場合があります。
具体的には アプリ情報 → ストレージ と開いても、「使用されているストレージ」項目が存在しません。
例えば、Gmail(左)やLINE(右)は内部ストレージ化したSDへ移せない。
プリインストールアプリは特にその傾向が高いですが、サードパーティ製アプリも割と該当します。一方、ゲーム系アプリはSDカードへ移せるケースが多いです。
SDカードを抜くとアプリを起動できない
内部ストレージ化したSDカードにアプリを移した状態で、下記いずれかの操作には注意して下さい。
- SDカードを抜く
- 外部ストレージとしてフォーマットする
実行すると、SDカードに移したアプリは強制的にストップして、起動できなくなります。
内部ストレージ化したSDカードを抜いた例。メッセージが表示され(左)、SDカードに移したアプリは起動できない(右)。
ボクの検証した限り、SDカードを一時的に抜いた後、再挿入しても、アプリデータは初期化されませんでした(=セーブデータは維持されます)。が、内部ストレージと一体化したSDカードをフォーマットせずにデバイスから外す動作は、リスクが高いため推奨されません。
開発者向けオプション「外部ストレージへのアプリの書き込みを許可」について
Androidの隠れ機能「開発者向けオプション」には、外部ストレージへのアプリの書き込みを許可 というメニューがあります。
こちらのメニューを有効にすると、SDカードへ移動できる対象アプリが拡大する可能性があります。
adbコマンドでエラーが表示される原因と解決策
adbコマンドを実行しても、エラーが表示されて先に進めないことがあります。
本パートでは、主なエラー例と解決策を紹介します。
エラー例
エラー①
/system/bin/sh: sm: not found
エラー②
Error: java. lang. IllegalArgumentException
エラー③
error: no devices/emulators found
エラー④
'sm' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
エラー⑤
Error: android.os.DeadObjectException
エラー①:/system/bin/sh: sm: not found
下記エラーが表示される場合、デバイスのAndroidバージョンが古い可能性が高いです。
/system/bin/sh: sm: not foundSDカードの内部ストレージ化は、Android 6.0より実装された機能「Adoptable Storage」を使っているため、これより古いOSバージョンだと失敗します。
まず、Android OSバージョンが6.0以上か確認して下さい。
例えば、設定の「端末情報」より確認できる。
もしAndroid 6.0より古い場合、OSバージョンアップをお試し下さい。
Android 6.0以上にアップデートできない場合、残念ながらそのデバイスではSDカードの内部ストレージ化はできません。
エラー②:Error: java. lang. IllegalArgumentException
下記エラーが表示される場合、入力しているコマンドに誤りがないか確認して下さい。
Error: java. lang. IllegalArgumentExceptionエラー③:error: no devices/emulators found…etc
下記エラーが表示される場合、パソコンとUSB接続したAndroidが正しく認識されていません。
▼エラー例1
error: no devices/emulators found▼エラー例2
error: device unauthorizederror: no devices/emulators foundの例。
次の2点が原因であるケースが多いので、確認して下さい。
- AndroidのUSBデバッグを有効にしているか
- 「このパソコンからのUSBデバッグを常に許可する」にチェックを入れたか
エラー④:’sm’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
下記コマンドを入力した際、
sm list-disks次のエラーが表示される場合、
'sm' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。記事中で紹介した手順に沿って作業しているか確認して下さい。
例えば、1つ前の下記コマンドをスキップして入力するとこのエラーが表示されます。
adb shellエラー⑤:Error: android.os.DeadObjectException
ボクの検証環境では、Galaxyシリーズでコマンドを実行したところ、次のエラーが表示されました。
Error: android.os.DeadObjectException内部ストレージ化には失敗し、「この外部SDカードのデータは破損しています」と表示が出た。
記事冒頭にも記載したとおり、内部ストレージ化には相性があり、Galaxyシリーズは失敗する可能性が高いです。
補足:AndroidのSDカードやストレージ活用に関するアレコレ
Androidにおける面白いSDカードの活用術や、ストレージ容量不足を解消する豆知識を補足します。
説明の流れ
補足①
あらゆるファイルの保存先をSDカードへ変更する方法
補足②
SDカード非対応のAndroidで外部記憶媒体を使う方法
補足③
あらゆるファイルの保存先をSDカードへ変更する方法
Androidでダウンロードするファイルのほとんどは、あらかじめ保存先が決まっており、自由に変更できません。
が、下記3パターンいずれかの方法でカスタマイズ可能です。
説明が長くなるため、詳細は関連記事【Androidでダウンロードの保存先を変更する方法! スマホからSDカードに直接ファイルを移動しよう】で解説しています。
Androidでダウンロードの保存先を変更する方法! スマホからSDカードに直接ファイルを移動しよう
この記事では、Androidのダウンロード保存先を変更する方法を解説します。ブラウザ機能や専用アプリを使えば、ダウンロード先をSDカード含め好きな場所へ変更できます。
SDカード非対応のAndroidで外部記憶媒体を使う方法
Androidの中には、SDカードスロットがない機種もあります。
これは、そのデバイスに対応するUSBケーブルさえ用意できれば、SDカードはもちろん、USBメモリや外付けHDDなど記憶媒体を扱えるようになります。
例えば、SDカードスロットのないPixel 3a XLでも認識できるようになる。
より詳細な情報は、関連記事【AndroidでUSBメモリを使う方法! 外付けHDDやSDカードなど記憶媒体をスマホやタブレットで接続しよう】で解説しています。
AndroidでUSBメモリを使う方法! 外付けHDDやSDカードなど記憶媒体をスマホやタブレットで接続しよう
この記事では、AndroidでUSBメモリや外付けHDDなど記憶媒体を使う方法を解説します。保存されるファイルを操作する手順や、うまく読み取りできない原因と解決策も説明しています。
Androidの空き容量不足を解消する情報まとめ
Androidの内部ストレージに保存されるコンテンツのうち、容量が大きいファイルとして「写真」・「動画」・「音楽」があります。
これらファイルはGoogleの無料サービスを使って、クラウド上で管理できるようになります。
例えば「写真」や「動画」は、
Googleフォトの基本的な使い方! iOS(iPhone/iPad)やAndroidの写真や動画を自動でバックアップする方法
この記事では、Googleフォトの基本と使い方について解説しています。iPhone・Android別のバックアップ手順から、Googleフォトの便利な豆知識までまとめています。
「音楽」は、
Google Play Musicの使い方! クラウドで曲を保存/再生して音楽専用のオンラインストレージにしよう
この記事では、Google Play Musicの基本と使い方を解説します。無料版・有料版の違いから、実際に楽曲をアップロードする手順、有料サブスクリプション音楽を再生する手順など説明しています。
それ以外にもストレージ容量不足を解消する豆知識をまとめて、関連記事【Androidの空き容量不足を解消する豆知識まとめ! 内部ストレージを節約してメモリを増やす設定方法】で解説しています。
Androidの空き容量不足を解消する豆知識まとめ! 内部ストレージを節約してメモリを増やす設定方法
この記事では、Androidの内部ストレージ不足を解決する方法を解説しています。「不要なアプリやファイルを削除する」コツと「必要なアプリやファイルの管理方法を工夫する」コツをまとめています。
〆:SDカードを使って内部ストレージ不足を解消しよう!
以上、AndroidでSDカードを内部ストレージ化してアプリを移動する方法! スマホの外部ストレージをフォーマットしよう の説明でした。
今回紹介したadbコマンドを使った方法は少しハードルが高いですが、一度設定すれば、内部ストレージと一体化したSDカードとして活用できます。
一方、記事冒頭で解説した通り、内部ストレージ化はデメリットもあり、注意が必要です。
ストレージ容量の少ないAndroid機種をお使いであれば、ぜひお試しあれ。
参考 Android Source – Adoptable Storage