我正在尝试挂载 Android 模拟器创建的 userdata-qemu.img.qcow2 文件。以下过程不起作用:
sudo qemu-nbd -c /dev/nbd0 ~/.android/avd/Pixel_C_API_27.avd/userdata-qemu.img.qcow2
第一个命令运行良好,但运行
sudo qemu-nbd -c /dev/nbd0 ~/.android/avd/Pixel_C_API_27.avd/userdata-qemu.img.qcow2
结果是这样的输出:
Fehler: /dev/nbd0: unbekannte Partitionstabelle
Modell: Unbekannt (unknown)
Festplatte /dev/nbd0: 3146MB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: unknown
Disk-Flags:
基本上它无法识别映像文件中的分区表。您可能想知道输出是什么
fdisk /dev/nbd0 -l
所以这里是:
Medium /dev/nbd0: 3 GiB, 3145728000 Bytes, 6144000 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O Größe (minimal/optimal): 512 Bytes / 512 Bytes
正如您所预料的那样,安装当然会失败,因为如果分区表本身也无法识别,则无法识别分区。谢谢你的帮助!
编辑:我刚刚发现问题一定与 Android 的用户数据加密有关。由于我从未更改过任何密码,因此模拟器的用户数据分区的加密密码必须是默认的“default_password”。如何解密映像才能安装它?
您可以安装userdata-qemu.img.qcow2
使用以下过程
-
将图像转换为原始图像
qemu-img convert -O raw userdata-qemu.img.qcow2 udata-raw.img
-
use losetup
设置环回设备以进行安装
sudo losetup -f -P userdata.img
-
use losetup -l
查看设置了什么设备
losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop0 0 0 0 0 /path/to/userdata.img 0
-
安装驱动器
mkdir /tmp/mnt
sudo mount /dev/loop0 /tmp/mnt
Then ls /tmp/mnt/
gives
app benchmarktest benchmarktest64 lost+found misc nativetest nativetest64
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)