本帖最后由 SilenceRet 于 2024-7-2 11:32 编辑
论坛中已有进入SSH的方法.这里不描述了.
开始了..... (有些日子了,只有文字记录,没有图片)
进入SSH后使用命令,查看分区情况,命令: (照理说在telnet下也能做这些操作?)
#这是折腾前CR8808 M79原版分区情况
- dev: size erasesize name
- mtd0: 00080000 00020000 "0:SBL1"
- mtd1: 00080000 00020000 "0:MIBIB" #说是分区表,但实测并不是(后面说明).
- mtd2: 00040000 00020000 "0:BOOTCONFIG"
- mtd3: 00040000 00020000 "0:BOOTCONFIG1"
- mtd4: 00100000 00020000 "0:QSEE"
- mtd5: 00100000 00020000 "0:QSEE_1"
- mtd6: 00040000 00020000 "0:DEVCFG"
- mtd7: 00040000 00020000 "0:DEVCFG_1"
- mtd8: 00040000 00020000 "0:CDT"
- mtd9: 00040000 00020000 "0:CDT_1"
- mtd10: 00080000 00020000 "0:APPSBLENV"
- mtd11: 00140000 00020000 "0:APPSBL" #u-boot
- mtd12: 00140000 00020000 "0:APPSBL_1"
- mtd13: 00100000 00020000 "0:ART"
- mtd14: 00080000 00020000 "0:TRAINING"
- mtd15: 00080000 00020000 "bdata"
- mtd16: 00080000 00020000 "crash"
- mtd17: 00080000 00020000 "crash_log"
- mtd18: 02400000 00020000 "rootfs" #我当前的flag_boot_rootfs=0,所以这是原版系统分区位置
- mtd19: 02400000 00020000 "rootfs_1" #所以这就是要刷的分区了.
- mtd20: 01f00000 00020000 "overlay"
- mtd21: 00d80000 00020000 "data"
- mtd22: 00364000 0001f000 "kernel"
- mtd23: 0158e000 0001f000 "ubi_rootfs"
- mtd24: 01b20000 0001f000 "rootfs_data"
- mtd25: 00a2c000 0001f000 "data_ignor_reset"
复制代码
关于rootfs与rootfs_1的说明
一般的硬件只要支持OTA升级(可以理解为在线升级),他就至少要做两个分区
当在分区0下运行时,升级时,会将文件下载到分区1去,然后修改引导标志,下次启动时让分区1引导,这样就实现了升级,
当下次再升级时, 他又会将文件下载到分区0去… 这样循环..
而这个引导标志,这里可使用nvram show命令查看flag_boot_rootfs 值
flag_boot_rootfs=0 时, 由rootfs分区启动
flag_boot_rootfs=1 时, 由rootfs_1分区启动
从这里也能确定,路由器当前的系统是装在哪个分区 所以刷机时, 刷在另一个分区就对了, 刷机完后, 将这个数值改掉, 就能引导我们自己刷的系统了.
#刷机……………………
#我这里下载好的文件名为: openwrt-06.14.2024-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi
#使用winscp上传固件到/tmp文件夹 #恢复到/dev/mtd19(rootfs_1)分区
- ubiformat /dev/mtd19 -y -f /tmp/openwrt-06.14.2024-ipq50xx-arm-redmi_ax3000-squashfs-nand-factory.ubi
复制代码
#其它贴子中讲的无法保存配置,我使用这个版本是能保存的 #修改启动分区为1 (rootfs_1为1, 原厂的rootfs为0)
- nvram set flag_last_success=1
- nvram set flag_boot_rootfs=1
- nvram commit
- reboot
复制代码
#至此,重启后不出意外就进入op了
后悔药… 切换为原厂固件########################################################################
###注意!!! 刷入op后,OP不带nvram命令, 需要以下命令修改uboot环境变量
#fw_printenv 打印所有变量
#fw_printenv 变量名 打印单个变量
#fw_setenv 修改变量 #切换回原厂固件 设置为第0个rootfs分区
- fw_setenv flag_last_success 0
- fw_setenv flag_boot_rootfs 0
- reboot
复制代码
下载地址: 上面打不开的,可以到网盘下载:
如果想要大空间合并全区,直接刷web版的不死uboot,在web uboot中刷这固件, 会自动合并分区,注意:刷完后回原厂就非常麻烦了.
最好是备份所有分区:
- dd if=/dev/mtd1 of=/tmp/bak_mtd1.bin
- dd if=/dev/mtd2 of=/tmp/bak_mtd2.bin
- ......
- #这个/tmp文件夹是在内存中的,大小有限
- #小分区可以多次备份到tmp下载回电脑
- #但两个大分区必须先下载回电脑删了再继续备份.
复制代码
另外,刷关键分区时,路由可能会直接重启,我那天刷uboot分区时直接重启了,原因不明
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|