Backup postmarketOS partitions of Android phone.
postmarketOSシステムパーティションのデータをバックアップする方法について話します。
postmarketOSにはrsyncやTimeshiftなど、バックアップツールがいくつもあります。システムを以前の状態へ戻せます。Linuxの権限はAndroidより完全なので、理論上はどのディレクトリでもバックアップできます。さらにスマホがLinuxメインラインカーネルをサポートしているなら、BTRFSのスナップショットも活用できます。
ただし、この記事で扱うのは「全機バックアップ」の方法です。スマホのデータを1対1でバックアップし、ワンクリックで以前の状態へ戻せるようにしたいのです。
1. postmarketOSとAndroidパーティション#
PinePhoneにpostmarketOSをインストールする場合、Tow-BootでPinePhoneを1つのディスクのようにできます。そうするとPCへ挿した後、ddコマンドでシステムイメージ全体を抽出し、システム全体をバックアップできます。
しかし、postmarketOSデバイスの多くはAndroidスマホから改造されたものです。パーティションテーブルはAndroid由来です。そのため、Androidの方法でバックアップする必要があります。
Android 9以前のデバイスではA/Bパーティションがよく使われ、Android 10以降のデバイスでは多くの場合、動的パーティションが使われます。デバイスごとに違います。Xiaomi Poco F1を例にすると、postmarketOSはfasboot経由でbootとuserdataパーティションへ書き込まれ、他のパーティションはAndroidの元の状態を保ちます。したがって、FastbootとRecoveryは引き続き使えます。
この場合、理論上はAndroid Recovery画面でADBコマンドを使い、この2つのパーティション全体のイメージファイルを抽出できます。
全機バックアップなので、使用容量は簡単にスマホ本体の容量を超えます。抽出したイメージファイルは、より大きいSDカードかPCへ置く必要があります。USB 3以上の速度のポートで転送することをおすすめします。
2. postmarketOSパーティションをバックアップ#
Xiaomi純正のRecoveryにはADB機能がないため、私はLineageOSのrecoveryを使います。TWRPでバックアップしてもよいですが、TWRPはすべてのスマホにあるわけではありません。
再起動してスマホをFastbootモードに入れます
LineageOSサイトからRecoveryをダウンロードして書き込みます
再起動してLineageOS Recoveryに入ります
fastboot reboot recoveryAdvancedメニューをタップし、ADB機能を有効化します
スマホをPCへ接続します。
パーティションをPCへ抽出します
adb pull /dev/block/bootdevice/by-name/userdata userdata.img
adb pull /dev/block/bootdevice/by-name/boot boot.img- これで2つのimgファイルが得られます。
3. postmarketOSパーティションを復元#
復元効果を実測します:
再起動してpostmarketOSに入ります
いくつかファイルを削除します
imgを再度書き込みます。今回はfastbootで書き込みます
fastboot flash boot boot.img
fastboot flash userdata userdata.img- 再起動後、理屈では以前の状態に戻るはずです。
スマホのシステムをAndroidへ戻した後でも、この方法でpostmarketOSのデータを復元できるのか、と聞きたくなるかもしれません。かなり危険です。パーティションテーブルが壊れる可能性があります。


