root@router:~# cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 001e0000 00020000 "Factory"
mtd4: 00020000 00020000 "Trace"
mtd5: 00200000 00020000 "FIP"
mtd6: 04000000 00020000 "ubi"
mtd7: 00020000 00020000 "Tracebak"
mtd8: 03200000 00020000 "foxfs"
(参考)
6.备份分区
打开tftp32
再打开winscp的终端
输入命令,记得把192.168.10.2改成你实际的IP
dd if=/dev/mtd0 | tftp -p -r mtd0_bak.bin -l - 192.168.10.2
dd if=/dev/mtd1 | tftp -p -r mtd1_bak.bin -l - 192.168.10.2
dd if=/dev/mtd2 | tftp -p -r mtd2_bak.bin -l - 192.168.10.2
dd if=/dev/mtd3 | tftp -p -r mtd3_bak.bin -l - 192.168.10.2
dd if=/dev/mtd4 | tftp -p -r mtd4_bak.bin -l - 192.168.10.2
dd if=/dev/mtd5 | tftp -p -r mtd5_bak.bin -l - 192.168.10.2
dd if=/dev/mtd6 | tftp -p -r mtd6_bak.bin -l - 192.168.10.2
dd if=/dev/mtd7 | tftp -p -r mtd7_bak.bin -l - 192.168.10.2
dd if=/dev/mtd8 | tftp -p -r mtd8_bak.bin -l - 192.168.10.2
winscp终端会报错,但实际上运行成功了
此时tftp32同目录下会多几个文件,保存好
7.使用 WinSCP 将 uboot 镜像文件 mt7981_honor_fur-602-fip-fixed-parts-multi-layout 上传至路由器的 /root 目录 。
执行以下命令刷入 FIP 分区 :
mtd write mt7981_honor_fur-602-fip-fixed-parts-multi-layout.bin FIP
8.刷写完成后,断电,长按reset键不松手,插电启动路由器,等灯变绿,放手reset键,即可进入uboot
9.将电脑ip地址设置成192.168.1.10,掩码:255.255.255.0,网关192.168.1.1,dns 192.168.1.1 浏览器输入192.168.1.1进入uboot,choose mtd layout 选择expand(114m),
刷入固件(我这里不提供固件,可以从下面的链接下载固件,固件和荣耀xt50通用)
10.本 uboot 同样支持引导原厂固件 :
Choose mtd layout 选择 default,上传之前备份好的mtd6- ubi 分区镜像并点击 Update
重启进入官方系统后,再通过 SSH 终端依次刷回 Tracebak 和 foxfs 等备份分区即可
本贴参考链接
https://cmi.hanwckf.top/p/immortalwrt-mt798x/