2022/05/10

空き容量ゼロになったiPhoneのリンゴループ状態を無理やり復活させた

ブログなんて書くのは何年振りだろうと思いつつ、備忘録として超久々に記事を起こしてみる。

家族のうち一人はスクショ魔なのだが、結果iPhone本体の空き容量不足になってiPhoneを正常に動作しなくさせてしまうことが1年に何度か起こる。

たいていの場合はホーム画面のアプリアイコンが一部正常に表示されなくなり、慌てていろんなデータを消して事なきを得るのだが、今回はどうやらiPhoneの空き容量警告が出ても「あとでちょっと消そう」と削除を後回しにして写真やスクショを撮り続けてしまい、とどめを刺してしまったらしい

思い返すと前回(2022年2月下旬)も同じように容量枯渇事案を発生させており、その時は本当にリンゴループになってしまった。

ググった結果

  • リカバリーモードに突入する
  • iTunesとiPhoneをLightningケーブルで接続する
  • iTunesから「アップデート」を実行する
    • 失敗したら再び最初から
  • アップデートが完了したら、iPhoneがデータの回復を試行するので気長に待つ
  • うまくいけば万歳

という技を見つけ、当時は何とか写真もLINEも無事データを回復させることができた。

参考:【長文】容量オーバーによるリンゴループからのリカバリーループになったiphoneが奇跡的にデータそのままで復活した話 - 色々情報サイト

そして2022年2月の事案以後、口を酸っぱくして「データを消せ、常に空き容量は総容量の1割である25GBを維持しろ、フラッシュメモリを痛めるのでiPhone自体が壊れるぞ」と何度も脅していたのだが……

喉元過ぎれば熱さを忘れるとは言ったもの、結局元の木阿弥で3か月足らずで再びiPhoneの空き容量を枯渇させてしまったのだ。

症状としては前回と同じように

  • ホームボタンのアイコンが一部消えている
  • 写真の削除を実行しても写真が消えない

と、いかにもダメな感じ満点。

今回も、

  • iPhoneのバックアップはiCloudがいっぱいなので取れていない
  • LINEのトーク履歴データも同様にバックアップは取れていない
  • でもLINEのデータは絶対に失いたくない 
  • 写真のデータはGoogleフォトにある程度バックアップされているはずだが、できれば消さないでほしい

とのリクエストだ。無茶言うな。

さすがに空き容量を少しでも確保しないことには何も作業を進められないので、最後の1点はデータ救出とGoogleフォトへの保存(これによりiPhone本体にデータがなくても参照できる)を行うことを条件に諦めてもらい、iPhone上からのデータ削除には同意してもらった。

ただ、今回は絶望的なことに、空き容量が本当にないのだ。ゼロなのだ。 

とりあえずOSが生きているうちにフルバックアップを取るのが定石だろうと思ってLightningケーブルをiPhoneに刺したところ……
本当に空き容量が無かったからなのだろうか、ケーブルをつないだ瞬間画面が真っ暗になり、真ん中に小さく回転する読み込みマークが表示されてしまった。

「SpringBoardが落ちたときと一緒だ」と一瞬で感じてしまった。
脱獄犯だったからこそわかるこの感触。。。

ホーム画面がクラッシュして、真ん中に小さく回転する読み込みマークが表示され、iOSが再起動し、リンゴマークが表示された後再び起動するがまたロックを解除するとホーム画面が落ちる、の繰り返し。

試しにリカバリーモードに突入してiTunesから「アップデート」を実行してみたが、アップデート作業は一向に進まずiPhoneはホッカイロよりも熱くなってしまった。

嫌な予感がしたのでケーブルを引き抜き無理やりアップデートを中止してiPhoneを強制再起動。

その後iPhoneはリカバリーモードのままで、改めてPCとiPhoneを接続したところ、 iTunesからは「このiPhoneは復元する必要があります」的なメッセージを告げられる。実質的な死亡宣告だ。

さすがに「はいそうですか、データには死んでもらいます」とは言えないので、何とか模索することとしたい。

まずはリカバリーモードから抜けて、ひとまず一瞬ホーム画面が表示される状態まで戻って作戦を立て直したい。

リカバリーモードに一度入ってしまうと基本的には復活できないので、サードパーティーのソフト(今回は「Tenorshare ReiBoot」にした)を使ってリカバリーモードを解除した。

そのうえで再び電源を入れると、ロック画面が表示され、パスコードを入力するとホーム画面が落ちて、リンゴマークが表示された後再び起動する、を繰り返すようになった。

SpringBoardが一度起動するのが不幸中の幸いで、PCにつないでいると、iPhoneが再起動してロックを解除した瞬間にデバイスの認識音が鳴ってInternal Storageとして1~2分ほど認識されていた。

この間に何らかの手法を使って本体から写真データだけでも救い出し、空き容量を少しずつ開けることで、iPhoneフルバックアップ取得を目指すことにした。

脱獄犯愛用のiFunBoxがこんなところで役立つとは思わなかったが、以下のような手順を踏んで空き容量も確保し、バックアップ取得と初期化、バックアップからの復旧を終えてiPhoneのデータ喪失を伴わず(厳密にいえばすでにバックアップ済みの写真はiPhone上から消しているが)復活させることができた。

  1. あらかじめiTunesを終了し、iFunBoxを起動しておく
  2. iPhoneを起動し、ロックを解除
  3. 画面が真っ暗になったので、すぐにLightningケーブルを使ってiPhoneとPCを接続
  4. iFunBoxがiPhoneを認識したら、「ツールボックス」→「システムユーザーファイル」に進み、 [User File]\DCIM を開く。
  5. DCIMフォルダの中にある写真データ(=カメラロール内の写真)を少しずつPCにコピー。
    (すでにコピー済みのデータがあることが確信できていれば、別にコピーせずともよい)
    自分の場合は一度に300枚くらいが限界だった。
  6. 途中でiOSが死んで接続が切れるので、Lightningケーブルを抜き、2.に戻る。
  7. 写真データのコピーが終わったら or 諦めたら、次に写真データを消していく。
    2.~4.までは同じ。そして、DCIMフォルダ内の「123APPLE」のような3桁数字+APPLE/SYNCD/IMPRTなどの文字列で構成されるフォルダを順々に消していく。
    • おススメはデータの古い順、つまりDCIMフォルダ内のサブフォルダの連番が若いフォルダから順々に一つ一つ消していくことだ。
    • iPhone上に残しておいてもいい直近の写真データがあるならば、頭の数字が大きい「nnnAPPLE」フォルダを1つか2つくらい残しておいてもいい。
  8. 削除中にiOSが死んだら、Lightningケーブルを抜き、7.の作業を続ける。
    ちなみにだいたい50GB分くらいのデータを消した後は、iPhoneがクラッシュしなくなった。
    • 今回はiPhoneがクラッシュしなくなったタイミングで、Googleフォトアプリを起動して、Googleフォトに未バックアップだった写真もアップロードした。
    • この手の復旧作業は3度目なのだが、もう「二度とやりたくない」のでGoogleフォトにバックアップ後は直近2週間分(それでも写真は4,000枚弱ある)の写真データだけ残して、あとはすべて強制削除を執行した。
  9. 写真の削除が終わったら、iFunBoxを使って [User File]\PhotoData\photos.sqlite もPCに念のためコピーしておく。photos.sqlite-shmとphotos.sqlite-walは残しておく(とりあえず残しておいても動作に影響は出なさそうだった。)。
    • DCIMフォルダ内のデータを直接削除したため、写真アプリのデータベースに不整合が発生してしまう。これを解消するために、データベースファイルを削除する。
      削除操作を行わないと、写真アプリの挙動が不安定になったり、存在しない写真が写真アプリ上に表示されて項目自体を削除することができなくなったりするおそれがある。
  10. 9.でPCにコピーしたphotos.sqliteを削除する。
    • この後、作業が終わるまでiPhone上のカメラアプリや写真アプリは起動しないこと。
  11. iTunesを使ってフルバックアップを取る。
  12. iPhoneを「復元」して初期化する。
  13. 復元完了後、11.で取得したバックアップを復元する。
  14. 写真アプリを起動し、そのまま待つ。photos.sqliteが再構築され、徐々にカメラロール内の件数が増えていくはず。

以上で、iPhoneの完全初期化によるデータ喪失を伴わず、リンゴループ状態(とほぼ同様)の容量不足になったiPhoneを復活させることができた。

本件事案の張本人としてはLINEのデータが一番大事らしく、それを消さずに済むことができてよかったらしい。

お礼としてコロットのラップドクレープ2個(カスタードといちご味)をもらった。

なんとも破格な技術料だ。

ちなみに世の中のiPhone復旧データ業者のホームページを見ると、システム障害の場合は6万円くらいかかるケースもあるらしい。

今回のように自己修復できたのでラッキーだったが、一番はこういう事態に陥らないこと。

こまめにバックアップを取り、空き容量は総容量の1割を下回らないよう常に気を付ける。これが鉄則だと思う。

……さすがに今回は170GBくらいの空き容量を用意したから、きっと来年くらいまでは持ちこたえてくれると思いたい。