anysoft 发表于 2018-9-21 16:53:54

【教程】华为光猫备份分区固件(busybox dd命令)

本帖最后由 anysoft 于 2018-10-3 13:39 编辑

               在我上一篇帖子中提过,光猫其实和路由器一样。底包都是改版的openwrt,然后固件打包解包过程加了华为自己的结构和加密处理而已。光猫加入了驱动和对应程序。所以完全可以把光猫当做路由来玩,特别是当前的光猫配置越来越好,还能挂载USB。


            今天正题是如何备份光猫固件。华为光猫的刷机固件有自己独特的结构,常规的解包方式无用,看雪bxc大神分析了固件格式并开发了hwfw_gui。这个工具可以拆分华为固件,编辑内部文件。rootfs导出后是uimg文件 squashfs。


         废话不多说直接上备份命令(路由器固件备份命令):
1、先获取、补全shell进入

本文不就演示如何获取shell了,自行研究(获取shell都不会那么后边也没有看下去的必要)

进入shell之后用户还不是root,可以用whoami命令查看当前用户,此时再执行su,密码:admin就变成root了。
2、cat /proc/mtd 查看本机mtd信息


所有的mtd设备和别名都一目了然

3、df查看挂载点信息



   此处要注意,很多人备份或者上传文件都用/tmp文件夹,这里tmp文件夹只有10MB无法存放大文件,所以不要备份到tmp,看哪个文件夹可用空间大就备份到哪里。我是用的/dev/shm文件夹,足够的空间。

4、备份每个dev
busybox dd if=/dev/mtd12 of=/dev/shm/rootfsA.bin


这里各个分区备份出来后可以用hwfw_gui替换内部文件,或者直接通过还原命令在其他设备刷入。



5、tftp导出备份文件到电脑
tftp -p -l rootfsA.bin-r rootfsA.bin 192.168.1.2


40MB文件,(bin固件直接导出rootfs.img是38.1MB,40MB是后边有FF的空数据)

6、从备份还原
dd if=ubootA.bin of=/dev/mtdblock3
或者
mtd -r write /dev/shm/rootfsA.bin rootfsA







ultraedit查看如下:


hwfw_gui导出的rootfs.img

备份的rootfs



最后说一下,备份时候一定要确认你选的目录有足够的空间,备份完毕后可以df查看目录使用率是否达到100%,如果达到表示固件基本上没有备份完全。没备份完全的不要刷,刷了就会变砖。


(PS一句 如果你备份的bin文件16进制末尾不是FFFFFF那么你基本备份失败,因为mtd一般都会比img固件大,所以不会完全写满mtd设备,这样备份出来的bin末尾必定是FF空段)




参考来源:
https://blog.csdn.net/chang198932/article/details/36435209
https://blog.csdn.net/kepa520/article/details/51195439
http://man.linuxde.net/tftp


最最最后希望猫友可以帮忙备份一下 HS8145V的R018所有固件。拜谢!

可以参考这个帖子回复

https://www.chinadsl.net/forum.php?mod=viewthread&tid=158559&highlight=%B1%B8%B7%DD






942250037 发表于 2018-9-28 19:02:32

本帖最后由 942250037 于 2018-9-28 19:04 编辑

你还原分区命令都搞错了以下恢复命令经过测试有效正确命令
busybox dd if=/dev/mtd11 of=/dev/mtdblock12    从11分区还原12
busybox dd if=/dev/mtd9 of=/dev/mtdblock10   从9分区还原10
busybox dd if=/dev/mtd3 of=/dev/mtdblock4      从3分区还原4
cd /dev/shm 进入目录tftp -g -r rootfsA.bin 192.168.1.2上传

busybox dd if=/dev/shm/rootfsA.bin of=/dev/mtdblock12 还原12
busybox dd if=/dev/shm/kernelA.bin of=/dev/mtdblock10还原10
busybox dd if=/dev/shm/ubootA.bin of=/dev/mtdblock4   还原4

942250037 发表于 2018-9-23 18:36:13

备份末端FF删不掉

lovegoogle 发表于 2018-9-21 18:26:47

你QQ号多少,我上次备份了的

naim1 发表于 2018-9-21 20:40:23

感谢分享
可是我导出来的R017无法用hwfw_gui打开,是什么回事呢?

anysoft 发表于 2018-9-21 21:12:26

naim1 发表于 2018-9-21 20:40
感谢分享
可是我导出来的R017无法用hwfw_gui打开,是什么回事呢?

备份出来的是hwfw_gui内部的rootfs,而不是刷机包bin。
无法直接备份出原始的刷机包的。要自己再用hwfw_gui拼凑。
大哥比方,华为固件是windows的ISO安装镜像,我们备份的就像ghost备份。只能从备份还原方法刷其他机器备份的部分,而不能直接使能工具刷。

qq519948746 发表于 2018-9-21 21:39:36

华为的固件提取制作都比较简单,想要一些简单的功能也可以通过写个.SH 来解决。那位大神能搞定中兴烽火的固件编辑就好了

yecunbo 发表于 2018-9-21 21:46:58

本帖最后由 yecunbo 于 2018-9-21 21:48 编辑

经过尝试可以备份但是无法恢复进去,我有R18版本的8145v可以备份给你,加W X: yezi860061交流学习!

hu0730 发表于 2018-9-22 12:24:32

谢谢分享,学习了

anysoft 发表于 2018-9-23 23:00:47

942250037 发表于 2018-9-23 18:36
备份末端FF删不掉

用16进制编辑器可以删除的 不是直接delete键和backspace通过右击编辑删除
用winhex或者 ultraeditor 软件使用教程可以问度娘
页: [1] 2 3 4 5 6
查看完整版本: 【教程】华为光猫备份分区固件(busybox dd命令)