我正在尝试拍摄我的 Android 手机的映像。具体来说,我尝试拍摄系统和启动分区的映像。使用 dd 时,映像过程似乎可以正常工作。但是,当我尝试将映像挂载到环回设备中时,映像似乎为空。我还尝试通过 cpio 管道查看文件内容。基本上,我正在尝试验证我拍摄的映像。我做错了什么?我拍摄映像或验证的方式有问题吗?还是两者都有问题?以下是要采取的步骤(您将在下面的系统分区上看到,但我使用了相同的启动过程)
[root@localhost 平台工具]# ./adb 设备 所连接设备列表 99000421100783 设备
[root@localhost 平台工具]#./adb shell shell@C6730:/$su
root@C6730:/# cat /proc/partitions 大调 小调 #blocks 名称 179 0 7634944 mmcblk0 179 1 65536 mmcblk0p1 179 2 1024 mmcblk0p2 179 3 1024 mmcblk0p3 179 4 1024 mmcblk0p4 179 5 1024 毫米cblk0p5 179 6 1024 mmcblk0p6 179 7 1024 mmcblk0p7 179 8 1024 mmcblk0p8 179 9 1024 mmcblk0p9 179 10 16384 mmcblk0p10 179 11 1024 mmcblk0p11 179 12 1024 mmcblk0p12 179 13 1024 mmcblk0p13 179 14 1536 毫米 cblk0p14 179 15 1536 毫米 cblk0p15 179 16 2048 mmcblk0p16 179 17 8192 mmcblk0p17 179 18 4096 mmcblk0p18 179 19 8192 mmcblk0p19 179 20 8192 毫米 cblk0p20 179 21 819200 mmcblk0p21 179 22 658432 mmcblk0p22 179 23 16384 mmcblk0p23 179 24 6144 mmcblk0p24 179 25 8192 毫米 cblk0p25 179 26 1024 毫米cblk0p26 179 27 1024 毫米cblk0p27 179 28 5120 毫米 cblk0p28 179 29 4718592 mmcblk0p29 179 30 1048576 mmcblk0p30 179 31 8192 mmcblk0p31 259 0 20480 mmcblk0p32 259 1 4096 mmcblk0p33 259 2 16384 mmcblk0p34 259 3 16384 mmcblk0p35 259 4 1024 毫米cblk0p36 259 5 1024 毫米cblk0p37 259 6 1024 毫米cblk0p38 259 7 1024 毫米cblk0p39 259 8 20480 mmcblk0p40 259 9 20480 mmcblk0p41 259 10 4096 毫米 cblk0p42 259 11 4096 mmcblk0p43 259 12 95215 mmcblk0p44 179 32 512 毫米 cblk0rpmb 179 64 30183936 mmcblk1 179 65 30182912 mmcblk1p1 254 0 4718592 dm-0 254 1 1048576 DM-1
根@C6730:/#parted /dev/block/mmcblk0 GNU Parted 1.8.8.1.179-aef3 使用 /dev/block/mmcblk0 欢迎使用 GNU Parted!输入“help”查看命令列表。 (分开)打印 打印 型号:MMC 8WMB3R (sd/mmc) 磁盘/dev/block/mmcblk0:7818MB 扇区大小(逻辑/物理):512B/512B 分区表: gpt 编号 起始 结束 大小 文件系统 名称 标志 1 4194kB 71.3MB 67.1MB fat16 调制解调器 2 71.3MB 72.4MB 1049KB sbl1 3 72.4MB 73.4MB 1049kB sbl1bak 4 73.4MB 74.4MB 1049kB sdi 5 75.5MB 76.5MB 1049KB DDR 6 79.7MB 80.7MB 1049kB 启动 7 80.7MB 81.8MB 1049kB 启动引导 8 81.8MB 82.8MB 1049KB 转 9 82.8MB 83.9MB 1049kB rpmbak 10 83.9MB 101MB 16.8MB 启动 11 101MB 102MB 1049kB tz 12 102MB 103MB 1049kB tzbak 13 103MB 104MB 1049kB 垫 14 104MB 105MB 1573kB 调制解调器1 15 105MB 107MB 1573kB 调制解调器2 16 107MB 109MB 2097kB 保留1 17 109MB 117MB 8389kB dnand 18 117MB 122MB 4194kB bfss1 19 122MB 130MB 8389kB bfss2 20 130MB 138MB 8389kB ext4 持久 21 138MB 977MB 839MB ext4 系统 22 977MB 1652MB 674MB ext4 缓存 23 1652MB 1668MB 16.8MB 恢复 24 1668MB 1675MB 6291kB 杂项 25 1678MB 1686MB 8389kB 文件系统 26 1686MB 1687MB 1049kB 文件系统 27 1687MB 1688MB 1049kB 固态硬盘 28 1688MB 1693MB 5243kB 保留2 29 1693MB 6525MB 4832MB 用户数据 30 6525MB 7599MB 1074MB 内部存储 31 7599MB 7607MB 8389kB ext4 系统属性 32 7607MB 7628MB 21.0MB ext4 载体 33 7628MB 7633MB 4194kB 大小 34 7633MB 7649MB 16.8MB 档案 35 7649MB 7666MB 16.8MB 光盘 36 7666MB 7667MB 1049kB sdibk 37 7667MB 7668MB 1049kB abootbk 38 7668MB 7669MB 1049kB rpmbk 39 7669MB 7670MB 1049kB tzbk 40 7670MB 7691MB 21.0MB 日志 41 7691MB 7712MB 21.0MB 日志工作 42 7712MB 7716MB 4194kB 启动 43 7716MB 7721MB 4194kB ROM 44 7721MB 7818MB 97.5MB 预留3 (分开)q 问
root@C6730:/# cd /dev/block/platform/msm_sdcc.1/by-name
root@C6730:/dev/block/platform/msm_sdcc.1/by-name# ls -l lrwxrwxrwx root 1969-12-31 19:17 DDR -> /dev/block/mmcblk0p5 lrwxrwxrwx root root 1969-12-31 19:17 aboot -> /dev/block/mmcblk0p6 lrwxrwxrwx root root 1969-12-31 19:17 abootbak -> /dev/block/mmcblk0p7 lrwxrwxrwx root root 1969-12-31 19:17 abootbk -> /dev/block/mmcblk0p37 lrwxrwxrwx root root 1969-12-31 19:17 bfss1 -> /dev/block/mmcblk0p18 lrwxrwxrwx root root 1969-12-31 19:17 bfss2 -> /dev/block/mmcblk0p19 lrwxrwxrwx root root 1969-12-31 19:17 启动 -> /dev/block/mmcblk0p10 lrwxrwxrwx root root 1969-12-31 19:17 启动工作 -> /dev/block/mmcblk0p42 lrwxrwxrwx root root 1969-12-31 19:17 缓存 -> /dev/block/mmcblk0p22 lrwxrwxrwx root root 1969-12-31 19:17 载体 -> /dev/block/mmcblk0p32 lrwxrwxrwx root root 1969-12-31 19:17 dnand -> /dev/block/mmcblk0p17 lrwxrwxrwx root root 1969-12-31 19:17 fota -> /dev/block/mmcblk0p34 lrwxrwxrwx root root 1969-12-31 19:17 fotabk -> /dev/block/mmcblk0p35 lrwxrwxrwx root root 1969-12-31 19:17 fotamng -> /dev/block/mmcblk0p33 lrwxrwxrwx root root 1969-12-31 19:17 fsc -> /dev/block/mmcblk0p26 lrwxrwxrwx root root 1969-12-31 19:17 fsg -> /dev/block/mmcblk0p25 lrwxrwxrwx root root 1969-12-31 19:17 内部存储 -> /dev/block/mmcblk0p30 lrwxrwxrwx root root 1969-12-31 19:17 日志 -> /dev/block/mmcblk0p40 lrwxrwxrwx root root 1969-12-31 19:17 logwork -> /dev/block/mmcblk0p41 lrwxrwxrwx root root 1969-12-31 19:17 杂项 -> /dev/block/mmcblk0p24 lrwxrwxrwx root root 1969-12-31 19:17 调制解调器 -> /dev/block/mmcblk0p1 lrwxrwxrwx root root 1969-12-31 19:17 modemst1 -> /dev/block/mmcblk0p14 lrwxrwxrwx root root 1969-12-31 19:17 modemst2 -> /dev/block/mmcblk0p15 lrwxrwxrwx root root 1969-12-31 19:17 pad -> /dev/block/mmcblk0p13 lrwxrwxrwx root root 1969-12-31 19:17 持久 -> /dev/block/mmcblk0p20 lrwxrwxrwx root root 1969-12-31 19:17 恢复 -> /dev/block/mmcblk0p23 lrwxrwxrwx root root 1969-12-31 19:17 reserve1 -> /dev/block/mmcblk0p16 lrwxrwxrwx root root 1969-12-31 19:17 reserve2 -> /dev/block/mmcblk0p28 lrwxrwxrwx root root 1969-12-31 19:17 reserve3 -> /dev/block/mmcblk0p44 lrwxrwxrwx root root 1969-12-31 19:17 rom -> /dev/block/mmcblk0p43 lrwxrwxrwx root 1969-12-31 19:17 rpm -> /dev/block/mmcblk0p8 lrwxrwxrwx root root 1969-12-31 19:17 rpmbak -> /dev/block/mmcblk0p9 lrwxrwxrwx root root 1969-12-31 19:17 rpmbk -> /dev/block/mmcblk0p38 lrwxrwxrwx root root 1969-12-31 19:17 sbl1 -> /dev/block/mmcblk0p2 lrwxrwxrwx root root 1969-12-31 19:17 sbl1bak -> /dev/block/mmcblk0p3 lrwxrwxrwx root root 1969-12-31 19:17 sdi -> /dev/block/mmcblk0p4 lrwxrwxrwx root root 1969-12-31 19:17 sdibk -> /dev/block/mmcblk0p36 lrwxrwxrwx root root 1969-12-31 19:17 ssd -> /dev/block/mmcblk0p27 lrwxrwxrwx root root 1969-12-31 19:17 sysprop -> /dev/block/mmcblk0p31 lrwxrwxrwx root root 1969-12-31 19:17 系统 -> /dev/block/mmcblk0p21 lrwxrwxrwx root root 1969-12-31 19:17 tz -> /dev/block/mmcblk0p11 lrwxrwxrwx root root 1969-12-31 19:17 tzbak -> /dev/block/mmcblk0p12 lrwxrwxrwx root root 1969-12-31 19:17 tzbk -> /dev/block/mmcblk0p39 lrwxrwxrwx root root 1969-12-31 19:17 用户数据 -> /dev/block/mmcblk0p29
root@C6730:/#dd if=/dev/block/mmcblk0p21 of=/mnt/media_rw/sdcard0/firmware-img/kyocerasystem.img bs=4096 conv=noerror,sync 204800+0 条记录 204800+0 条记录 838860800 字节传输耗时 40.461 秒(20732577 字节/秒)
root@C6730:/#退出 shell@C6730:/$退出 [root@localhost jeremy]:/#losetup /dev/loop0 /home/jeremy/kyocerasystem.img [root@localhost jeremy]:/#mkfs.ext4 /dev/loop0 mke2fs 1.42.9(2013年12月28日) 丢弃设备块:4096/204800:完成 文件系统标签= 操作系统类型:Linux 块大小=4096(log=2) 片段大小=4096(log=2) 步幅=0 块,条纹宽度=0 块 51296 个 inode,204800 个块 10240 个块(5.00%)为超级用户保留 第一个数据块=0 最大文件系统块=209715200 7 个区块组 每组 32768 个块,每组 32768 个片段 每组 7328 个 inode 超级块备份存储在块上: 32768, 98304, 163840 分配组表:0/7:完成 写入 inode 表:0/7:完成 创建日志(4096个块):完成 写入超级块和文件系统会计信息:0/7:完成
[root@localhost jeremy]:/ # mount -t ext4 /dev/loop0 /mnt [root@localhost jeremy]:/ # cd /mnt [root@localhost 杰里米]:/#ls 失物招领 root@localhost jeremy]# dd if=kyocerasystem.img | cpio -ictv > kyocerasystem.txt 1638400+0 条记录 1638400+0 条记录 已复制 838860800 字节(839 MB),耗时 25.1643 秒,33.3 MB/s cpio:文件过早结束 [root@localhost jeremy]:/#less kyocerasystem.txt (无内容显示 - 为空)
答案1
好吧,如果我没看错的话,你正在使用 格式化你之前拍摄的图像mkfs.ext4 /dev/loop0
。你为什么要这么做?不要这样做,数据就会在那里。