TWRPで内部ストレージを含めたNandroidバックアップ

投稿者: | 2020年11月9日

TWRPリカバリのバックアップでは、仕様としてカメラロールなどがある内部ストレージをバックアップすることは出来ません。PCのようなストレージ全体のバックアップを得る方法を考察してみます。

ASUS謹製ローカルバックアップ

ASUS ZenFone 7には、設定の中にASUS謹製とおぼしき、ローカルバックアップと言う機能があります。カメラロール画像や動画、音楽ファイル、ダウンロードフォルダの任意のファイル等、Googleアカウントではバックアップや同期してくれないデータをバックアップしてくれるようです。

図1.ASUS謹製ローカルバックアップ

図1.ASUS謹製ローカルバックアップ

試しにSDカードへバックアップをしてみましょう。何が生成されたのか見てみると、これはどうもファイル単位のバックアップで、拡張子が変えられているので、圧縮・暗号化されているのだと思います。

図2.外部ストレージアクセスを毎回許可

図2.外部ストレージアクセスを毎回許可

図3.ローカルバックアップ試行

図3.ローカルバックアップ試行

更に今度はそのまま復元してみると、復元先にファイルが存在するともれなくファイル名を変えてそのまま復元されてしまいました。結果として復元の度に同じファイルがどんどん増えることに。基本的にこれはまっさらからの復元向けに思え、私にとってはあまり実用的には感じませんでした。

図4.ローカルバックアップ復元

図4.ローカルバックアップ復元

 

TWRPリカバリのNandroidバックアップ

前回インストールしたTWRPカスタムリカバリにはバックアップ・リストアの機能があります(いわゆるNandroidバックアップ)。リカバリ側からシステムをバックアップするので、てっきり写真動画その他、雑多なユーザファイルのある内部ストレージもバックアップしてくれると勘違いしていましたが、TWRP公式にその辺りが明記されている通り、たとえ/data配下にあっても内部ストレージである/data/mediaは除外されるのだそう。

先ずはTWRPで普通にバックアップを実行してみましょう。バックアップ対象のパーティション選択時、Dataパーティションのサイズに注目。内部ストレージを含まないのでこの程度です。

図5.TWRPによる通常のバックアップ

図5.TWRPによる通常のバックアップ

MagiskにはこのようなTWRPリカバリの仕様を改変するプラグイン、TWRP HelperというのがあるのでZenFone 7で試してみたものの、うまくいきませんでした。おそらくこのプラグイン、三星系の機種を想定していて、リカバリが2スロットあるような機種に対応していないようです。

図6.TWRP Helperのインストール失敗

図6.TWRP Helperのインストール失敗

TWRPリカバリのこうした仕様を手作業で回避してしまう手順がこちらのフォーラムに挙がっていました。まとめると、/data/mediaを除外しているのはバックアップ先として使われる場合を考えての措置で、/data/mediaのフォルダ名を変えてしまえば、/dataの一部としてバックアップされるというもの。その時はもちろん、バックアップ先を内部ストレージに指定することは出来ません。

以下の手順に沿って試してみましょう。

  1. TWRPリカバリに入る
  2. マウントする
  3. 「/data/media」をリネームする
  4. バックアップ取る(バックアップ先は内部ストレージ以外)
  5. リネームした「/data/media」を元に戻す【重要!!】
  6. システムブート

リネームはAdvanced内にあるFile Managerを使って行います。/data/mediaに入ったら右下の青いアイコンを押し、アクション選択メニューよりフォルダをリネームします。

図7.TWRPのファイルマネージャでフォルダをリネーム

図7.TWRPのファイルマネージャでフォルダをリネーム

再びホームよりバックアップに入ると一見何も変わっていませんが、リフレッシュサイズすると/dataパーティションの容量が増えていることが確認されますので、この状態でバックアップします。バックアップ終了後は、必ずリネームした/data/mediaフォルダの名前を元に戻してからリブートするのを忘れずに。

図8.リネームで内部ストレージ含めバックアップ

図8.リネームで内部ストレージ含めバックアップ

試しに一度、内部ストレージを初期化し、先ほどのバックアップを復元してみましたが、不具合もなく正常に復元することが出来ました。復元後リネームしたフォルダを/data/mediaに戻し、初期化以前の状態でリブート出来ました。

図9.リネームした内部ストレージを復元

図9.リネームした内部ストレージを復元

 

今回は端末内でのバックアップでしたが、次回は、rsyncを使った母艦PCやNASなどリモートデバイスへのバックアップについて書いてみるつもりです。

 

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA