Android SDカード 破損しています 内部共有ストレージ

執筆:2021.03.27
編集:2021.03.27


Android OS の SDカード 内部共有ストレージ の破損。

設定 > ストレージ
SDカード : 破損しています

SDカード : 破損しています
90%:セル寿命で死亡。高耐久のmicroSDカードではない場合は、書き込み回数1000回程度なので すぐに破損する。
残り:端末の設計上の問題:OSのバグ、端子不良、工作精度不良等

スマホに 内部共有ストレージ として メモリを入れるなら高耐久のmicroSDカード以外ありえません。

内部共有ストレージにするための microSDカード 要件
・管理領域第1パーティションのびっくり100MB切りがあるので、高耐久のmicroSDカードを使用する必要がある。
・一度いれたmicroSDの差し替えが困難なので、この点からも 高耐久のmicroSDカード が必要になる。

今回の原因を絞り込むため頻度の高い順に調査を開始

パーティションアプリを起動し
microSDカードのパーティション読み出しエラーチェック:正常
破損していない!! どういうこと!!

microSDカードを
内部共有ストレージにすると
100MBと残りでパーティション切るという びっくりなことしてくれるので
最初は、あまりの少ない領域なので第1パーティションのセル寿命がきて死んだのかとおもってましたがそうではないみたい。


設定 > ストレージ
SDカード : 破損しています
SDカード : 挿入されていません
SDカード : 挿入されていません
なにこの下にある2つの身に覚えのないSDカード

OSが勝手にmicroSDの管理番号を変更してるでしょ

ということで「microSDカードが原因ではないこと」を確信しました。

これは、直接内部のぞいてみるしかない。しかしOSの管理者(root)権限は持っていない😢

発生している現象

  • ❌内部共有ストレージ が読み込めない
  • ❌Playでのインストール、アップデート利用不能
  • ❌ユーザーのストレージなし、アクセス不能

✔microSDが原因ではない。
microSDの読み出しエラーチェックをすると正常で問題なし。
microSDの破損という表示はおそらく、本体内部の保存してあるキーと照合が取れないだけでmicroSDは壊れてはいない。

$ ls -l /mnt/sdcard
lrwxrwxrwx 1 root root 21 2021-03-27 16:22 /mnt/sdcard -> /storage/self/primary

$ ls -l /storage/self/primary
lrwxrwxrwx 1 root root 19 2021-03-27 16:22 /storage/self/primary -> /mnt/user/0/primary

$ ls -l /mnt/user/0/primary
ls: /mnt/user/0/primary: No such file or directory

/sdcard -> /storage/self/primary -> /mnt/user/0/primary
/storage/sdcard0 -> /sdcard -> /storage/self/primary -> /mnt/user/0/primary
/storage/self/primary -> /mnt/user/0/primary

正常なrakutenhand(ラクテンハンド)と比較してみる
C:\...>adb shell
P710:/ $ ls -l /mnt/sdcard
lrwxrwxrwx 1 root root 21 1970-02-26 08:31 /mnt/sdcard -> /storage/self/primary
P710:/ $ ls -l /storage/self/primary
lrwxrwxrwx 1 root root 19 1970-02-26 08:31 /storage/self/primary -> /mnt/user/0/primary
P710:/ $ ls -l /mnt/user/0/primary
lrwxrwxrwx 1 root root 19 2021-03-26 16:08 /mnt/user/0/primary -> /storage/emulated/0
P710:/ $ ls -l /storage/emulated/0
total 33
drwxrwx--x 2 root sdcard_rw 3488 2020-01-01 00:00 Alarms
drwxrwx--x 5 root sdcard_rw 3488 2021-02-21 12:39 Android
drwxrwx--x 3 root sdcard_rw 3488 2021-02-21 18:58 DCIM
drwxrwx--x 2 root sdcard_rw 3488 2021-02-21 13:50 Download
drwxrwx--x 3 root sdcard_rw 3488 2021-02-21 13:19 Link
drwxrwx--x 2 root sdcard_rw 3488 2020-01-01 00:00 Movies
drwxrwx--x 2 root sdcard_rw 3488 2020-01-01 00:00 Music
drwxrwx--x 2 root sdcard_rw 3488 2021-02-21 12:10 Notifications
drwxrwx--x 4 root sdcard_rw 3488 2021-02-24 15:12 Pictures
drwxrwx--x 2 root sdcard_rw 3488 2020-01-01 00:00 Podcasts
drwxrwx--x 2 root sdcard_rw 3488 2020-01-01 00:00 Ringtones

P710:/ $ ls -la /storage
total 7
drwxr-xr-x 4 root root 80 2021-03-26 09:33 .
drwxr-xr-x 22 root root 4096 2009-01-01 09:00 ..
drwx--x--x 3 root sdcard_rw 3488 2021-03-26 16:08 emulated
drwxr-xr-x 2 root root 60 1970-02-26 08:31 self

exit

エラーを起こした端末と正常な端末の違いがわりました

ファイル 端末
不具合 正常
/mnt/user/0 Permission denied
drwxr-x--x lrwxrwxrwx
/mnt/user/0/primary
/storage/emulated/
/storage/emulated/0

$ ls -l /mnt/user
total 0
drwxr-x--x 2 root root 40 2021-03-28 10:56 0

/mnt/user/0/primary -> /storage/emulated/0

  • /storage/emulated missing android 9
  • /storage/emulated/0 disappeared

C:\...>adb shell ls -l /mnt
ls: /mnt/media_rw: Permission denied
ls: /mnt/asec: Permission denied
ls: /mnt/vendor: Permission denied
total 0
drwx--x--x 2 root root 40 2021-03-27 16:22 appfuse
d--------- 2 system system 40 2021-03-27 16:22 cd-rom
drwxrwx--x 3 system system 60 2021-03-27 16:23 expand
drwxr-xr-x 2 root system 40 2021-03-27 16:22 obb
drwx------ 5 root root 100 2021-03-27 16:22 runtime
lrwxrwxrwx 1 root root 21 2021-03-27 16:22 sdcard -> /storage/self/primary
drwx------ 3 root root 60 2021-03-27 16:22 secure
drwxr-xr-x 4 root root 80 2021-03-27 17:37 user

/mnt/user/0/primary -> /storage/emulated/0

https://source.android.com/devices/storage/config-example
init.hardware.rc
mkdir /storage/emulated 0555 root root
export EMULATED_STORAGE_TARGET /storage/emulated

どうやら起動時に、/storage/emulatedを作成してからマウントしているらしい。
/storage/emulatedが存在しないことから、初期化ファイルが破損して /lost+found 送りにあった可能性がある

$ set | grep EMU
該当変数なし

find / -name "init.h*.rc" 2>/dev/null
ファイルなし。

AndoridOSのバグか、システムの設計に不備があり書き込み中にシャットダウンしてしまって論理エラーでシステムが破損しているっぽいですね。

AndroidOSには、シンボリックリンクやマウントポイントの自己修復ツールくらい標準で完備してほしいですね
耐障害設計されていないOSなので買い替え狙っているんでしょうか

root権限があれば mkdir や ln コマンドで数秒で簡単に直せることでしょうけど

何十枚しかとっていなかったですけど
Googleの写真フォルダの同期がされていなかったので、写真全滅のようです。
フォトのキャッシュで低画像では表示されるようです。

次は、Yahoo簡単バックアップいれておこうかな。


まとめ

インストール済みのメディアにアクセスしないアプリは正常に動作する
( /data領域は破損していない )

ユーザーレベルの書き込みを伴う行為は、ほぼすべてエラーになる。
作業フォルダにアクセスできないためと思われるエラー
・Playからのインストールはできない。容量エラーになる(30GB以上空きが余っている)
このデバイスには領域が十分にないため「」をダウンロードできませんでした。不要になったアプリやコンテンツを削除してから、もう一度試してください。
・カメラ使用不能:カメラを使用する前にSDカードをインストールしてください。


Android9 OSの問題の可能性があるので
端末を工場初期化しても直るのか怪しい。


経緯
・2、3日前に microSDの破損が表示されて、再起動で直った。
・電源を正常終了し、翌朝電源をいれると問題が発生した。


現象の考えられる原因
・AndroidOSが書き込み終了前にシャットダウンしてファイルシステムを破壊している。
・端末の電源関係の設計が不十分でRAM,ROMがセル破損し、ファイルシステムが破壊している。
・端末のRAM,ROMが不良品でセル破損して、ファイルシステムが破壊している。


内部共有ストレージ microSD 破損
検索すると似たような現象は結構あるので、
メモリのセル破損もしくは、OSもしくは通電関係の設計上のバグによるもの。

» 続きを読む