首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解压ubi图像,其中包含ubifs图像。

解压ubi图像,其中包含ubifs图像。
EN

Stack Overflow用户
提问于 2021-04-30 19:09:28
回答 1查看 737关注 0票数 0

我在研究过程中遇到了一个问题。我有一个从互联网上下载的固件文件,im试图解压它以模拟固件。好消息是,我成功地完成了一次,但我恢复了我的机器,现在我不能重新创建这个过程。

首先,文件不能被任何工具提取,因为你会得到一个错误,少于2个布局块被找到。

在那之后,我转储了ubi文件的一些信息:

代码语言:javascript
复制
==> app_ubifs <==
1 named volumes found, 2 physical volumes, blocksize=0x20000
== volume b'bakfs' ==
-rw-r--r--  1 0     0       37879808 2020-04-22 01:27:47 ubifs

所以,从我获得这个成功的时刻起,我就知道在bakfs卷中有另一个可以被公共工具成功提取的ubifs图像。

我测试了很多挂载这个镜像的方法,但是挂载总是失败。

代码语言:javascript
复制
modprobe ubi 

modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa \
                 third_id_byte=0x00 fourth_id_byte=0x15

我相信这是blocksize=0x20000的正确配置。

代码语言:javascript
复制
ubiformat /dev/mtd0 -f app_ubifs   
ubiformat: mtd0 (nand), size 268435456 bytes (256.0 MiB), 2048 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 2047 -- 100 % complete  
ubiformat: 2048 eraseblocks have valid erase counter, mean value is 0
ubiformat: flashing eraseblock 282 -- 100 % complete  
ubiformat: formatting eraseblock 2047 -- 100 % complete    

同样,格式化和闪存也能正常工作。

在这之后的下一部分我真的不明白。网上有100种不同的方法,但我似乎无法让它起作用。

如果有人能在这个过程中帮助我,我将不胜感激。

正如我所说的,我已经有了文件系统的解压版本。但我现在不能重新创建拆包过程。所以我知道这是可能的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 21:39:40

--解决方案

代码语言:javascript
复制
modprobe nandsim first_id_byte=0x2c second_id_byte=0xac third_id_byte=0x90 fourth_id_byte=0x15

为blocksize=0x20000制作设备。

检查它是否设置好了。

代码语言:javascript
复制
cat /proc/mtd

让我们把它弄干净。

代码语言:javascript
复制
flash_erase /dev/mtd0 0 0

现在格式化并刷新图像。

代码语言:javascript
复制
ubiformat /dev/mtd0 -f image.ubi -O 2048

然后连接设备。

代码语言:javascript
复制
modprobe ubi 

ubiattach -p /dev/mtd0 -O 2048

现在我可以挂载它了。

代码语言:javascript
复制
mount -t ubifs /dev/ubi0_X /mnt/ubifs

在我的例子中,它是ubi0_1,请确保在/dev上查看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67332866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档