TWRP リカバリの Nandroid バックアップでは、仕様としてカメラロールなどがある内部ストレージをバックアップすることは出来ません。PCのようなストレージ全体のバックアップを得る方法を考察してみます。
ASUS謹製ローカルバックアップ
ASUS ZenFone 7には、設定の中にASUS謹製とおぼしき、ローカルバックアップと言う機能があります。カメラロール画像や動画、音楽ファイル、ダウンロードフォルダの任意のファイル等、Googleアカウントではバックアップや同期してくれないデータをバックアップしてくれるようです。
試しにSDカードへバックアップをしてみましょう。何が生成されたのか見てみると、これはどうもファイル単位のバックアップで、拡張子が変えられているので、圧縮・暗号化されているのだと思います。
更に今度はそのまま復元してみると、復元先にファイルが存在するともれなくファイル名を変えてそのまま復元されてしまいました。結果として復元の度に同じファイルがどんどん増えることに。基本的にこれはまっさらからの復元向けに思え、私にとってはあまり実用的には感じませんでした。
TWRPリカバリのNandroidバックアップ
前回インストールしたTWRPカスタムリカバリにはバックアップ・リストアの機能があります(いわゆるNandroidバックアップ)。リカバリ側からシステムをバックアップするので、てっきり写真動画その他、雑多なユーザファイルのある内部ストレージもバックアップしてくれると勘違いしていましたが、TWRP公式にその辺りが明記されている通り、たとえ /data 配下にあっても内部ストレージである /data/media は除外されるのだそう。
先ずはTWRPで普通にバックアップを実行してみましょう。バックアップ対象のパーティション選択時、 Data パーティションのサイズに注目。内部ストレージを含まないのでこの程度です。
MagiskにはこのようなTWRPリカバリの仕様を改変するプラグイン、TWRP HelperというのがあるのでZenFone 7で試してみたものの、うまくいきませんでした。おそらくこのプラグイン、三星系の機種を想定していて、リカバリが2スロットあるような機種に対応していないようです。
TWRPリカバリのこうした仕様を手作業で回避してしまう手順がこちらのフォーラムに挙がっていました。まとめると、 /data/media を除外しているのはバックアップ先として使われる場合を考えての措置で、 /data/media のフォルダ名を変えてしまえば、 /data の一部としてバックアップされるというもの。その時はもちろん、バックアップ先を内部ストレージに指定することは出来ません。
以下の手順に沿って試してみましょう。
- TWRPリカバリに入る
- マウントする
- /data/media をリネームする
- バックアップ取る(バックアップ先は内部ストレージ以外)
- リネームした /data/media を元に戻す【重要!!】
- システムブート
リネームは Advanced 内にある File Manager を使って行います。 /data/media に入ったら右下の青いアイコンを押し、アクション選択メニューよりフォルダをリネームします。
再びホームよりバックアップに入ると一見何も変わっていませんが、リフレッシュサイズすると /data パーティションの容量が増えていることが確認されますので、この状態でバックアップします。バックアップ終了後は、必ずリネームした /data/media フォルダの名前を元に戻してからリブートするのを忘れずに。
試しに一度、内部ストレージを初期化し、先ほどのバックアップを復元してみましたが、不具合もなく正常に復元することが出来ました。復元後リネームしたフォルダを /data/media に戻し、初期化以前の状態でリブート出来ました。
今回は端末内でのバックアップでしたが、次回は、rsyncを使った母艦PCやNASなどリモートデバイスへのバックアップについて書いてみるつもりです。