[Android] バックアップを再認識してみる
すぐ事の重大さに気付いて真っ青になったのですが、時すでに遅く端末はまっさらな状態に。その作業の直前にはシステム領域もワイプしており、リカバリ以外には何もない状態です。
端末のストレージにはNandroidバックアップが保存してあったのですが、もちろんそれも消失。
現状この端末だけではどうすることもできません。幸いにして、Nandroidバックアップの複製はPC上に保存してあったため、PCとNexus4をUSBケーブルで接続し、/sdcardに必要なファイルを転送することでリストアに成功しました。
ただし、Nandroidバックアップでは/sdcardの中身までは復元できず、端末のみに保存してあった写真などのデータは永遠に失われてしまいました。そんな経験をしたものだから、Androidのバックアップを再認識してみようと思った次第。という長い前フリでありました。
で、具体的なバックアップの方法ですが、システム関係はNandroidバックアップの一択です。ただ、バックアップを端末に保存するとストレージ容量を圧迫するうえ、今回のようなポカをすると一緒に消えてしまいます。
このため、バックアップを実行した際には、ファイル群をPCなど他のストレージに転送しておきます。転送方法はMTP接続でもADBでもファイルマネージャでもかまいませんが、注意すべきはディレクトリ(フォルダ)構成。
TWRPの場合、端末のシリアル番号で名付けられたディレクトリが存在し、これがなかったり名前を間違ったりするとバックアップファイルとして認識してくれません。
シリアル番号を別途控えておけば良いのですが、それも面倒なので、最初の1回だけは/sdcard/TWRP以下の構造をそのままコピーするようにします。
なお、2回め以降はバックアップファイル群が収められたディレクトリのみを追加する形で転送すればOK。履歴をどこまで保存するかですが、バージョンが大きく変わった際のバックアップは保存用に残すとして、通常のバックアップは数世代前まででよろしいかと思われます。
この方法のネックは手間と時間がかかること。けれども、/sdcardが消えた(消した)ことにより本体内のNandroidバックアップファイルが失われた場合でも確実にレストアすることができます。
続いてはユーザ領域のバックアップなど。こちらは極めてシンプルにまるごとの複製を取ります。
その方法としては、端末とPCをMTP接続して/sdcard内のすべてをドラッグ&ドロップでPC上の適当な場所にコピーするか、またはADB接続を使用するのであれば以下のコマンドで(空のディレクトリ以外)すべてをコピーできます。
adb pull /sdcard/
上記コマンドを使用した場合、カレントディレクトリに/sdcardがそっくりそのまま転送されるので、実行場所にはご注意を。また、容量によってはそれなりに転送時間を必要とします。
書き戻す必要が生じた場合、MTP接続が可能ならばGUIで必要な(またはすべての)ファイルやフォルダを端末に転送できますし、ADBのみが機能するような場合でも...
adb push . /sdcard/ adb push . /sdcard/TWRP/
...するなどして書き戻すことができます。上記コマンドはカレントディレクトリのファイル構成をそのまま宛先にコピーする場合の記述となっておりますのでご注意を。ちなみに、上段のコマンドはバックアップをすべて転送し、下段コマンドはNandroidバックアップ(TWRP)関連のファイルを転送します。
ここまでしておけば、まず何があってもバックアップを取得した時点までは再現することができます。が、万全を期すのであればカスタムリカバリでもアクセスできない他のパーティションもバックアップしておきたいところです。
そのためには、パーティションの名前や場所を調べる必要があるなどかなり面倒なのですが、これを簡単に実行できるようにしたツールがありました。詳しくはこちらのサイトをご覧くだされ。
このツールによって、端末のすべてのパーティションをPCにバックアップすることができます。が、書き戻す場合には個別に対応する必要があり、それなりのスキルは必須。けれども、最後の砦として保険的に実行しておく意味は大きいと思われます。
普段はただの手間でしかないバックアップですが、いざトラブルに遭遇するとそのありがたみを実感します。端末のバックアップが取れる環境があるにもかかわらず、「最近ご無沙汰だなぁ」というユーザには、その重要性と有効性を再認識していただきたいと思う今日このごろです。
コメント