【教程】华为光猫备份分区固件(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: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
备份末端FF删不掉 你QQ号多少,我上次备份了的
感谢分享
可是我导出来的R017无法用hwfw_gui打开,是什么回事呢? naim1 发表于 2018-9-21 20:40
感谢分享
可是我导出来的R017无法用hwfw_gui打开,是什么回事呢?
备份出来的是hwfw_gui内部的rootfs,而不是刷机包bin。
无法直接备份出原始的刷机包的。要自己再用hwfw_gui拼凑。
大哥比方,华为固件是windows的ISO安装镜像,我们备份的就像ghost备份。只能从备份还原方法刷其他机器备份的部分,而不能直接使能工具刷。 华为的固件提取制作都比较简单,想要一些简单的功能也可以通过写个.SH 来解决。那位大神能搞定中兴烽火的固件编辑就好了 本帖最后由 yecunbo 于 2018-9-21 21:48 编辑
经过尝试可以备份但是无法恢复进去,我有R18版本的8145v可以备份给你,加W X: yezi860061交流学习! 谢谢分享,学习了 942250037 发表于 2018-9-23 18:36
备份末端FF删不掉
用16进制编辑器可以删除的 不是直接delete键和backspace通过右击编辑删除
用winhex或者 ultraeditor 软件使用教程可以问度娘