我正在尝试将手机内置存储卡的分区直接备份(使用dd命令制作映像文件)到我的个人电脑。我使用的操作系统是Linux,手机型号为Nexus 4。
我正在尝试将手机内置存储卡的分区直接备份(使用dd命令制作映像文件)到我的个人电脑。我使用的操作系统是Linux,手机型号为Nexus 4。
相反,你需要:
在计算机上安装android-platform-tools
或android-sdk
。
将TWRP下载到计算机中。
按住音量减小和音量增大按钮,开启手机启动引导程序界面。确保您的手机连接到计算机的USB端口。
通过运行fastboot boot twrp-3.1.0.0.img
来启动TWRP。(这种方式无需刷写恢复分区)
在TWRP中,选择高级(Advanced),然后选择终端(Terminal),它会打开一个shell窗口。输入mount
并按[ENTER]键查看分区。你要找的是/data
和可能的/sdcard
分区挂载点。
假设您的/data
分区映射到/dev/mmcblk0p28
。只需在计算机上运行adb pull /dev/block/mmcblk0p28 data.img
,它会复制整个分区。由于它复制整个分区,无论其中存储了多少文件,因此预计这个过程需要一段时间。
fastboot oem unlock
命令吗? - ngreen以下是更好的答案:
要求:必须已经安装了adb
From your Linux PC in the folder where boot.img is located type:
$ fastboot boot boot.img
To copy the image of the mmcblk0 partition type:
$ adb pull /dev/block/mmcblk0 mmcblk0.img
编辑:Hongo的答案步骤更少。
fastboot flash recovery twrp.img
),则可以尝试 fastboot reboot-bootloader
,然后选择 恢复模式
。data
分区。确保已挂载您的 system
分区,因为您将需要一些存储在其中的可执行文件。adb
adb
。通过 USB 数据线将手机连接到计算机。键入 adb devices
。如果看到列出的设备,则表示已连接。adb forward tcp:33333 tcp:33333
adb shell mount
/dev/block/dm-0
,则它是逻辑卷(LVM)的一部分,这可能不是正确的备份方式]adb shell
dd if=/dev/block/dm-0 bs=64k | gzip | nc -l -p 33333
/dev/block/dm-0
是您从以前的挂载命令中找到的设备。33333
替换为您在手机上选择的端口号/system/bin/toybox
或 /system/bin/busybox
。if=
)复制,并使用块大小 64k(bs=64k
- 您可以指定任何值,或完全省略此参数,但小的值可能会减慢过程。大于 64k 的值通常不会加速过程),将其转储到 stdout
,然后将其压缩到 gzip 中,然后将其管道传输到 netcat,该 netcat 正在侦听(-l
)端口 33333(-p 33333
)。nc localhost 33333 | pv -i 0.5 --size 54g > dm-0.raw.gz
33333
替换为您在计算dd
替换为 rsync
命令。这样应该就可以解决问题了。如果在恢复时分区仍以相同方式挂载,则反向 rsync
应该也能正常工作。 - Codebling需求:adb必须已经安装
From your Linux PC in the folder where boot.img is located type:
$ fastboot boot boot.img
To make an image of the mmcblk0p23 partition type:
$ adb shell 'stty raw && dd if=/dev/block/mmcblk0p23' > ~/userdata.img
有用的链接:
如何确定所需分区: http://forum.xda-developers.com/showthread.php?t=2450045
如果未使用stty raw,则所有LF将转换为CRLF: android.stackexchange.com/questions/69434/is-it-possible-to-cat-a-file-to-an-android-phone-and-dd-to-dev-xxx-on-the-fly-w
如何root手机并使用不安全的boot.img: www.addictivetips.com/android/root-google-nexus-4-install-clockworkmod-recovery/
通过ADB shell传输二进制数据(如何使用stty raw): stackoverflow.com/questions/11689511/transferring-binary-data-over-adb-shell-ie-fast-file-transfer-using-tar