如何使用网络块设备(nbd)挂载原始 NAND 图像来访问其文件/文件夹?

如何使用网络块设备(nbd)挂载原始 NAND 图像来访问其文件/文件夹?

因此,我制作了我的智能手机的新映像,现在我想使用它。我可以使用 linuxmount命令安装它的某些分区,并提供分区的偏移量。例如,映像的状态为:

$ gdisk -l imagem-thea-20180722.img
GPT fdisk (gdisk) 版本 1.0.1

分区表扫描:
MBR:保护
BSD:不存在
APM:不存在
GPT:存在

找到具有保护性 MBR 的有效 GPT;使用 GPT。
磁盘映像 m-thea-20180722.img:30777344 个扇区,14.7 GiB
逻辑扇区大小:512 字节
磁盘标识符 (GUID):98101B32-BBE2-4BF2-A06E-2BB33D000C20
分区表最多可容纳 42 个条目
第一个可用扇区为 34,最后一个可用扇区为 30777310
分区将在 2 扇区边界上对齐
总可用空间为 70203 个扇区(34.3 MiB)

编号 起始(扇区) 结束(扇区) 大小 代码 名称
1 256 131327 64.0 MiB 0700 调制解调器
2 131328 132351 512.0 KiB FFFF sbl1
3 132352 132415 32.0 KiB FFFF DDR
4 132608 134631 1012.0 KiB FFFF aboot
5 135608 136007 200.0 KiB FFFF rpm
6 136608 137407 400.0 KiB FFFF tz
7 137608 137671 32.0 KiB FFFF sdi
8 137672 138695 512.0 KiB FFFF utags
9 138696 142791 2.0 MiB FFFF 日志
10 142792 147455 2.3 MiB 0700 padA
11 147456 149479 1012.0 KiB FFFF abootBackup
12 150456 150855 200.0 KiB FFFF rpmBackup
13 151456 152255 400.0 KiB FFFF tzBackup
14 152456 152519 32.0 KiB 0700 sdiBackup
15 152520 153543 512.0 KiB FFFF utagsBackup
16 153600 154623 512.0 KiB FFFF frp
17 154624 155703 540.0 KiB 0700 padB
18 155704 158775 1.5 MiB FFFF modemst1
19 158776 161847 1.5 MiB FFFF modemst2 20
161848 162823 488.0 KiB FFFF hob
21 162824 162887 32.0 KiB FFFF dhob
22 163072 166143 1.5 MiB FFFF fsg
23 166144 166145 1024 字节 FFFF fsc
24 166146 166161 8.0 KiB FFFF ssd
25 166162 168209 1024.0 KiB FFFF sp
26 168210 168465 128.0 KiB FFFF cid
27 168466 174609 3.0 MiB FFFF pds 28 174610
182801 4.0 MiB FFFF logo
29 182802 190993 4.0 MiB FFFF clogo
30 191232 207615 8.0 MiB 0700 持久
31 207616 208639 512.0 KiB FFFF misc
32 208640 229039 10.0 MiB FFFF boot
33 229040 249599 10.0 MiB FFFF recovery
34 249600 251647 1024.0 KiB 0700 deviceinfo
35 251648 284415 16.0 MiB 0700 ftmlog
36 284416 300799 8.0 MiB FFFF kpan
37 300800 327679 13.1 MiB 0700 padC
38 327680 360447 16.0 MiB FFFF 密钥库
39 360448 425983 32.0 MiB 0700 OEM
40 425984 4521983 2.0 GiB 0700 系统
41 4521984 5033983 250.0 MiB 0700 缓存
42 5033984 30711551 12.2 GiB 0700 用户数据

$ file imagem-thea-20180722.img
imagem-thea-20180722.img: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,1), end-CHS (0x3ff,255,63), startsector 1, 4294967295 sectors, extended partition table (last)

它是通过以下方式从设备中拉出创建的adb

$ adb pull /dev/block/mmcblk0 ~/imagem-thea-20180722.img

因此我可以mount使用以下命令来分区系统和用户数据:

$ sudo mount imagem-thea-20180722.img mount-dir/ -o offset=$((5033984*512))

通过扇区的开始,但是对于某些部分,这不起作用,例如boot

$ sudo mount imagem-thea-20180722.img mount-dir/ -o offset=$((208640*512))

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.

输出dmesg指向:

[26910.003624] F2FS-fs(loop1):魔法不匹配,有效(0xf2f52010)-读取(0xe2632b02)[26910.003625] F2FS-fs(loop1):在第 2 个超级块中找不到有效的 F2FS 文件系统

因此,我读到过一些文章说可以使用 NAND 图像进行操作,nbd但我没有找到简单的方法。基本上,我必须设置一个 nbd-server 来提供图像文件,然后使用 nbd-client 将其挂载。但我不知道该怎么做。有什么帮助吗?

相关内容