Backup postmarketOS partitions of Android phone.
討論如何備份postmarketOS系統分區的資料。
postmarketOS有不少備份工具,例如rsync和Timeshift,能將系統還原到先前的狀態。Linux的權限比Android完整,所以理論上什麼目錄都能備份。且手機有支援Linux主線核心,那麼更是能善用BTRFS製作快照。
不過,本篇我要講的是「全機備份」的做法,我希望一比一的備份手機資料,一鍵就能還原到先前的狀態。
1. postmarketOS與Android分區#
在PinePhone安裝postmarketOS的時候,我們可以用Tow-Boot將PinePhone變成一個硬碟,這樣插上電腦後便能用dd指令提取整個系統映像檔,備份整個系統。
但是,不少postmarketOS的裝置都是從Android手機改造來的,他們的分割表繼承自Android。所以我們要用Android的方式來備份。
Android 9以前的裝置常用A/B分區,而Android 10以後的裝置多半使用動態分區,每個裝置各有不同。以小米Poco F1為例,postmarketOS是透過fasboot刷入到boot
和userdata
分區,其他分區仍保持Android的原樣。故,Fastboot和Recovery依然可以使用。
這樣理論上,二個分區就可以在Android Recovery介面,用ADB指令提取整個分區的映像檔。
因為是全機備份,佔用的空間很容易就超過手機本身的空間,所以提取的映像檔要放到更大的SD卡或者電腦。建議使用USB 3以上速度的埠傳輸。
2. 備份postmarketOS分區#
小米原廠的Recovery沒有ADB功能,所以我使用LineageOS的recovery。要用TWRP備份也是可以,但是TWRP不是每台手機都有。
重開機讓手機進入Fastboot模式
到LineageOS網站下載Recovery,刷入
重開機進入LineageOS Recovery
fastboot reboot recovery
點選Advanced選單,啟用ADB功能
將手機接上電腦。
提取分區到電腦
adb pull /dev/block/bootdevice/by-name/userdata userdata.img
adb pull /dev/block/bootdevice/by-name/boot boot.img
- 這樣我們就得到兩個img檔案。
3. 還原postmarketOS分區#
實測復原效果:
重開機進入postmarketOS
刪除一些檔案
重新將img刷入,這回要用fastboot刷
fastboot flash boot boot.img
fastboot flash userdata userdata.img
- 重開機後理應會回復到之前的狀態。
你可能會問說,如果手機系統刷回Android,還能用這個方式復原postmarketOS的資料嗎?蠻危險的,分割表有機率亂掉。