iPhoneが起動しなくなったのでリカバリを試みた
iPhone 5sが起動しなくなってしまいました。
iPhoneは4sと5sの使用経験があり、数回起動しなくなったことは経験しているのですが、これまでは強制再起動で回復していました。が、今回は強制再起動でも回復せず。
再び使用できるようになるまでに試みた策を紹介します。
経緯と症状
INGRESSアプリを使用し端末がかなり熱い状態で、バッテリ残量が数%(5%未満だったように記憶している)となっているとき、突然電源が落ちた。その後電源が入らず、バッテリが尽きたのだと思い、帰宅後に充電。翌朝電源を入れようとしても、画面は黒いまま。電源ボタン(正確な名称はスリープ/スリープ解除ボタン)とホームボタンを同時押して強制再起動*1を試みると、Appleのリンゴマークが表示されるようになったが、そこから先に進まずに電源が落ちる状態。
以降は、下記のAppleのサポートページを参考にリカバリすることにします。
iPhone、iPad、iPod touch の電源が入らない場合 - Apple サポート
「デバイスの電源は入るが、起動の途中で動かなくなる場合」に該当するため、作業にはPC(Mac)とiTunesが必要になります。今回はWindows10搭載PC*2を使用しました。
リカバリ
1回目(更新)
- PCにiPhoneを繋ぎ、iPhoneの[スリープ/スリープ解除ボタン]と[ホームボタン]を同時押し
- iPhoneがリカバリモードになり以下の画面が表示される
- iTunesが自動起動し、以下のダイアログが表示されるので、[更新]を押下
※[更新]はiPhone内のデータが維持され、[復元]は全データが消去される - 以下のダイアログが表示されるので、[更新]を押下
- 以下のダイアログが表示されるので、[次へ]を押下
- 以下のダイアログが表示されるので、同意できれば[同意する]を押下
- iTunesが以下の画面となる
- 裏側にWindowsにより以下のダイアログが表示されている
- Windowsのデバイスが取り外された時の音がして、iTunesが以下の画面に変わる
- 以下のダイアログが表示される
ネットワーク周りは何も触れておらず、理由は不明ながらも以下のエラーメッセージ。
iPhone"iPhone"用のソフトウェアをダウンロード中に問題が起きました。不明なエラーが発生しました(-39)。
ネットワークの設定および接続を確認して、もう一度実行してください。
念のためPCを再起動して、もう一度同じ手順で再試行する。
2回目(更新)
1回目の6辺りまでは同一手順のため、記載を割愛。
- 今度はダウンロードできたらしく、iTunesに「ソフトウェアを抽出中」表示が現れる
- iTunesに[iPhoneを待機中]表示が現れる
- iTunesに[更新されたiPhoneソフトウェアを確認中]表示が現れる
- iPhoneのプログレスバーが以下の状態から進まない
- 以下のダイアログが表示される
何が問題なのか全くわからない、役立たずのエラーメッセージが表示された。
[もっと詳しく]を押下すると以下のURLに飛ばされる。
iPhone、iPad、または iPod をアップデートまたは復元するときにエラーが表示される場合 - Apple サポート
iTunesやOSを最新版に更新しろとか、セキュリティソフトをどうにかしろとか、一般的なトラブルシューティングの事しか書かれておらず、役立たず。
Google先生に上記エラーメッセージを入れて検索すると、以下のページが見つかる。
iOS のアップデート時や復元時のエラーの解決方法 - Apple サポート
こちらのページではエラー番号に応じた原因が示されており、エラー27は以下のように記されている。
以下のいずれかのエラーが表示される場合は、ハードウェアに問題があると考えられます。
1、3、10、11、12、13、14、16
20、21、23、26、27、28、29、34、35、36、37、40、56
1002、1004、1011、1012、1014、1667、1669
ということで、ハードウェア障害が濃厚と思われる。即ちそれはユーザがどうにかできるもではなさそうな気が。。。
落ち着いてよく見ると、表記が曖昧で「ハードウェア」が指しているのはiPhoneなのかリカバリに使ってるPCなのか不明確。
PC側の問題ならどうにかできる可能性が高いので、各種モニタリングツールを動作させながら何度か再試行してみた。
迷走
リソースモニタ等を立ち上げながら何度か再試行してみたが、エラー27は解消せず。
その過程で、以下のファイルをiTunesが掴んでいることに気付く。
C:\Users\%USERNAME%\AppData\Roaming\Apple Computer\iTunes\iPhone Software Updates\iPhone_4.0_64bit_10.0.1_14A403_Restore.ipsw
2GB超の巨大なファイルで、これがiPhoneのファームとiOSの実体ではないかと推測される。
ファイルヘッダを確認するとPKからはじまっており、ipswという拡張子(iPhone SoftWare?)だが内部構造は単なるZIPっぽい。そして目論み通り開けた。
Path = iPhone_4.0_64bit_10.0.1_14A403_Restore.ipsw Type = zip Physical Size = 2305510669 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2016-09-03 01:49:46 ..... 2191286849 2181042189 058-41234-210.dmg 2016-09-03 01:49:46 ..... 246 178 ._058-41234-210.dmg 2016-09-03 02:20:46 ..... 41115675 33802223 058-50460-069.dmg 2016-09-03 02:20:44 ..... 40271899 32980623 058-50463-070.dmg 2016-09-03 02:22:30 ..... 192023 10385 BuildManifest.plist 2016-09-03 02:19:06 D.... 0 0 Firmware 2016-08-31 18:38:04 D.... 0 0 Firmware\all_flash 2016-08-31 18:38:04 D.... 0 0 Firmware\all_flash\all_flash.n51ap.production 2016-08-31 18:37:04 ..... 6526 5950 Firmware\all_flash\all_flash.n51ap.production\applelogo@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 396 245 Firmware\all_flash\all_flash.n51ap.production\applelogo@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 9447 7604 Firmware\all_flash\all_flash.n51ap.production\batterycharging0@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 216 Firmware\all_flash\all_flash.n51ap.production\batterycharging0@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 34729 30516 Firmware\all_flash\all_flash.n51ap.production\batterycharging1@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 217 Firmware\all_flash\all_flash.n51ap.production\batterycharging1@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 83791 19728 Firmware\all_flash\all_flash.n51ap.production\batteryfull@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 215 Firmware\all_flash\all_flash.n51ap.production\batteryfull@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 43342 13830 Firmware\all_flash\all_flash.n51ap.production\batterylow0@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 216 Firmware\all_flash\all_flash.n51ap.production\batterylow0@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 1768 1551 Firmware\all_flash\all_flash.n51ap.production\batterylow1@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 214 Firmware\all_flash\all_flash.n51ap.production\batterylow1@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 101953 18330 Firmware\all_flash\all_flash.n51ap.production\DeviceTree.n51ap.im4p 2016-08-31 18:37:04 ..... 396 250 Firmware\all_flash\all_flash.n51ap.production\DeviceTree.n51ap.im4p.plist 2016-08-31 18:37:04 ..... 3674 3200 Firmware\all_flash\all_flash.n51ap.production\glyphplugin@1136~iphone-lightning.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 216 Firmware\all_flash\all_flash.n51ap.production\glyphplugin@1136~iphone-lightning.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 618653 618843 Firmware\all_flash\all_flash.n51ap.production\iBoot.n51.RELEASE.im4p 2016-08-31 18:37:04 ..... 292 218 Firmware\all_flash\all_flash.n51ap.production\iBoot.n51.RELEASE.im4p.plist 2016-08-31 18:37:04 ..... 159901 159951 Firmware\all_flash\all_flash.n51ap.production\LLB.n51.RELEASE.im4p 2016-08-31 18:37:04 ..... 292 215 Firmware\all_flash\all_flash.n51ap.production\LLB.n51.RELEASE.im4p.plist 2016-08-31 18:38:04 ..... 417 164 Firmware\all_flash\all_flash.n51ap.production\manifest 2016-08-31 18:37:04 ..... 220475 62804 Firmware\all_flash\all_flash.n51ap.production\recoverymode@1136~iphone-lightning.s5l8960x.im4p 2016-08-31 18:37:04 ..... 292 212 Firmware\all_flash\all_flash.n51ap.production\recoverymode@1136~iphone-lightning.s5l8960x.im4p.plist 2016-08-31 18:37:04 ..... 4710543 4711983 Firmware\all_flash\all_flash.n51ap.production\sep-firmware.n51.RELEASE.im4p 2016-08-31 18:37:04 ..... 396 247 Firmware\all_flash\all_flash.n51ap.production\sep-firmware.n51.RELEASE.im4p.plist 2016-08-31 18:38:04 D.... 0 0 Firmware\all_flash\all_flash.n53ap.production 2016-08-31 18:37:06 ..... 6526 5950 Firmware\all_flash\all_flash.n53ap.production\applelogo@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 396 245 Firmware\all_flash\all_flash.n53ap.production\applelogo@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 9447 7604 Firmware\all_flash\all_flash.n53ap.production\batterycharging0@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 216 Firmware\all_flash\all_flash.n53ap.production\batterycharging0@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 34729 30516 Firmware\all_flash\all_flash.n53ap.production\batterycharging1@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 217 Firmware\all_flash\all_flash.n53ap.production\batterycharging1@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 83791 19728 Firmware\all_flash\all_flash.n53ap.production\batteryfull@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 215 Firmware\all_flash\all_flash.n53ap.production\batteryfull@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 43342 13830 Firmware\all_flash\all_flash.n53ap.production\batterylow0@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 216 Firmware\all_flash\all_flash.n53ap.production\batterylow0@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 1768 1551 Firmware\all_flash\all_flash.n53ap.production\batterylow1@2x~iphone.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 214 Firmware\all_flash\all_flash.n53ap.production\batterylow1@2x~iphone.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 101953 18324 Firmware\all_flash\all_flash.n53ap.production\DeviceTree.n53ap.im4p 2016-08-31 18:37:06 ..... 396 249 Firmware\all_flash\all_flash.n53ap.production\DeviceTree.n53ap.im4p.plist 2016-08-31 18:37:06 ..... 3674 3200 Firmware\all_flash\all_flash.n53ap.production\glyphplugin@1136~iphone-lightning.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 216 Firmware\all_flash\all_flash.n53ap.production\glyphplugin@1136~iphone-lightning.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 618653 618843 Firmware\all_flash\all_flash.n53ap.production\iBoot.n53.RELEASE.im4p 2016-08-31 18:37:06 ..... 292 211 Firmware\all_flash\all_flash.n53ap.production\iBoot.n53.RELEASE.im4p.plist 2016-08-31 18:37:06 ..... 159901 159951 Firmware\all_flash\all_flash.n53ap.production\LLB.n53.RELEASE.im4p 2016-08-31 18:37:06 ..... 292 216 Firmware\all_flash\all_flash.n53ap.production\LLB.n53.RELEASE.im4p.plist 2016-08-31 18:38:04 ..... 417 164 Firmware\all_flash\all_flash.n53ap.production\manifest 2016-08-31 18:37:06 ..... 220475 62804 Firmware\all_flash\all_flash.n53ap.production\recoverymode@1136~iphone-lightning.s5l8960x.im4p 2016-08-31 18:37:06 ..... 292 212 Firmware\all_flash\all_flash.n53ap.production\recoverymode@1136~iphone-lightning.s5l8960x.im4p.plist 2016-08-31 18:37:06 ..... 4710543 4711983 Firmware\all_flash\all_flash.n53ap.production\sep-firmware.n53.RELEASE.im4p 2016-08-31 18:37:06 ..... 396 250 Firmware\all_flash\all_flash.n53ap.production\sep-firmware.n53.RELEASE.im4p.plist 2016-08-31 18:38:00 D.... 0 0 Firmware\dfu 2016-08-31 18:37:50 ..... 618653 618843 Firmware\dfu\iBEC.n51.RELEASE.im4p 2016-08-31 18:37:50 ..... 618653 618843 Firmware\dfu\iBEC.n53.RELEASE.im4p 2016-08-31 18:37:54 ..... 159901 159951 Firmware\dfu\iBSS.n51.RELEASE.im4p 2016-08-31 18:37:54 ..... 159901 159951 Firmware\dfu\iBSS.n53.RELEASE.im4p 2016-09-02 21:55:04 ..... 22448594 22408660 Firmware\Mav7Mav8-7.01.00.Release.bbfw 2016-09-02 21:55:26 ..... 744 531 Firmware\Mav7Mav8-7.01.00.Release.plist 2016-08-28 20:52:38 D.... 0 0 Firmware\usr 2016-08-28 20:52:38 D.... 0 0 Firmware\usr\local 2016-08-28 20:52:38 D.... 0 0 Firmware\usr\local\standalone 2016-09-02 23:30:00 ..... 11888131 11187737 kernelcache.release.n51 2016-09-02 23:30:02 ..... 11888131 11187737 kernelcache.release.n53 2016-09-03 02:21:48 ..... 3439 752 Restore.plist ------------------- ----- ------------ ------------ ------------------------ 2332650909 2305492863 64 files, 8 folders
Firmware階層下はファームウェアなのだと思われる一方、巨大なdmgがiOSなのだろうか。Windowsでdmg形式のディスクイメージをマウントするのは面倒なので、7zipで適当に中身を覗いてみると、058-41234-210.dmgだけは開くことができた。
Path = 058-41234-210.dmg Type = Dmg Method = copy[723]-723M zero2[4]-251M zlib[2688]-2681M-1366M Blocks = 3415 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ ..... 512 32 0.MBR ..... 512 78 1.Primary GPT Header ..... 16384 267 2.Primary GPT Table ..... 3072 0 3.free ..... 209715200 919477 4.C12A7328-F81F-11D2-BA4B-00A0C93EC93B ..... 3360374784 2190151846 5.hfsx ..... 263986688 0 6.free ..... 16384 267 7.Backup GPT Table ..... 512 79 8.Backup GPT Header ------------------- ----- ------------ ------------ ------------------------ 3834114048 2191072046 9 files, 0 folders
マスタブートレコードやGPTやhfsxがある辺り、iPhoneもPCみたいな感じなんだなという片鱗が見え隠れする。
閑話休題。
本来の目的を完全に見失っているので、リカバリに話を戻す。
上記のファームとiOSっぽいものが格納されていたディレクトリの隣に、
C:\Users\%USERNAME%\AppData\Roaming\Apple Computer\iTunes\iPhone Updater Logs
というディレクトリがあり、iPhoneUpdater.logというログファイルが存在していることを発見。
「不明なエラーが発生しました(27)。」の、27の出所のようなログが末尾に出力されている。
[12:42:42.0110] <Restore Device xxxxxxxxxxxxxxxx>: Restore failed (result = 27) [12:42:42.0110] Restore completed, status:27 [12:42:42.0110] Failure Description: [12:42:42.0110] Depth:0 Code:-1 Error:AMRestorePerformRestoreModeRestoreWithError failed with error: 27 [12:42:42.0110] Depth:1 Code:27 Error:Failed to handle message type StatusMsg [12:42:42.0110] Depth:2 Code:27 Error:failed to mount filesystems
ファイルシステムのマウント失敗と。さらにログを遡ってみると、SystemボリュームはOKっぽいという出力が見つかった。
[12:42:42.0001] ** Checking extents overflow file. [12:42:42.0001] ** Checking catalog file. [12:42:42.0001] ** Checking multi-linked files. [12:42:42.0001] ** Checking catalog hierarchy. [12:42:42.0001] ** Checking extended attributes file. [12:42:42.0001] ** Checking volume bitmap. [12:42:42.0001] ** Checking volume information. [12:42:42.0001] ** Trimming unused blocks. [12:42:42.0001] ** The volume System appears to be OK.
一方で、Dataボリュームには問題がある模様。
[12:42:42.0001] ** The volume Data could not be verified completely. [12:42:42.0001] volume check failed with error 2 [12:42:42.0001] volume type is pure HFS+ [12:42:42.0001] primary MDB is at block 0 0x00 [12:42:42.0001] alternate MDB is at block 0 0x00 [12:42:42.0001] primary VHB is at block 2 0x02 [12:42:42.0001] alternate VHB is at block 116611662 0x6f35a4e [12:42:42.0001] sector size = 512 0x200 [12:42:42.0001] VolumeObject flags = 0x07 [12:42:42.0001] total sectors for volume = 116611664 0x6f35a50 [12:42:42.0001] total sectors for embedded volume = 0 0x00 [12:42:42.0001] CheckHFS returned -1317, fsmodified = 0 [12:42:42.0001] fsck failed on /dev/disk0s1s2
その結果、fsckコマンドが失敗し、エラー27としてハンドリングされているような感じと考えられる。
すなわちPC側の問題ではなく、iPhoneのストレージに問題があると判断できる。
INGRESSで高負荷かつバッテリ残量が逼迫した状態で電源が落ちたため、ファイルシステムに障害が発生し起動不能になった。
そしてファイルシステムが損傷を受けているため、データを維持したままリカバリすることも不可能と判断できそう。
故にデータを維持可能な[更新]は諦めて、データを失う[復元]を試すことにします。
3回目(復元)
1回目の3辺りまでは同一だが、[更新]ではなく[復元]を押下。
- 以下のダイアログが表示されるので、[更新と更新]を押下
- iTunesに「ソフトウェアを抽出中」表示が現れる
- iTunesに「iPhoneを待機中」表示が現れる
- iTunesに「iPhoneの復元を確認中」表示が現れる
- iTunesに「iPhoneソフトウェアを復元中」表示が現れる
- iTunesに「iPhoneファームウェアを復元中」表示が現れる
- iTunesにアクティベーションロック画面が現れるので、AppleIDとパスワードを入力して[続ける]を押下
- 以下のダイアログが表示されるので、[ダウンロードして更新]を押下
- 以下のダイアログが表示されるので、[OK]を押下
- iTunesに新しいiPhoneへようこそ画面が現れるので、[続ける]を押下
- iTunesにiTunesと同期画面が現れるが、同期するつもりはないのでiTunesを終了する
ここまでくればiPhoneは正常に起動し、通常の状態(iOSは更新されているものの、購入直後と同様の真っ新な状態)になっている。
データは失われたものの、正常利用可能な状態に戻った。