u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序。他可以用来恢复小米路由器的固件,可以说只要刷了uboot,你的路由器基本上刷不死了。

以下操作都是在你获取了root信息后才可以实现。

2015年11月10日更:

刷uboot属于高危操作,如果你觉得刷了以后出现问题自己不一定Hold的住,请止步,谢谢合作!

如果造成不可挽回的损失,老高也没辙。。。

2015年9月17日更:

新版固件不要刷uboot了,会造成很多问题。

2015年10月3日更:

感谢ABC的回复,新版固件可以刷这个AR/QCA/MT7620 Breed,功能强大的多线程 Bootloader

备份硬件信息

刷机前做备份是一个好习惯。

已经有的案例,有同学在刷机时由于操作不当,导致刷掉了sn,虽然还是有方法可以曲线救国,但是还是很麻烦就是了。

# 查看MTD分区
cat /proc/mtd

# 备份
# /extdisks/sda1 就是外部存储设备的路径

dd if=/dev/mtd0 of=/extdisks/sda1/rom/ALL.bin
dd if=/dev/mtd1 of=/extdisks/sda1/rom/Bootloader.bin
dd if=/dev/mtd2 of=/extdisks/sda1/rom/Config.bin
dd if=/dev/mtd3 of=/extdisks/sda1/rom/Factory.bin
dd if=/dev/mtd4 of=/extdisks/sda1/rom/OS1.bin
dd if=/dev/mtd5 of=/extdisks/sda1/rom/rootfs.bin
dd if=/dev/mtd6 of=/extdisks/sda1/rom/OS2.bin
dd if=/dev/mtd7 of=/extdisks/sda1/rom/overlay.bin
dd if=/dev/mtd8 of=/extdisks/sda1/rom/crash.bin
dd if=/dev/mtd9 of=/extdisks/sda1/rom/reserved.bin
dd if=/dev/mtd10 of=/extdisks/sda1/rom/Bdata.bin
dd if=/dev/mtd11 of=/extdisks/sda1/rom/firmware.bin

# 恢复备份

mtd -r write /extdisks/sda1/rom/Bootloader.bin Bootloader
mtd -r write /extdisks/sda1/rom/Config.bin Config
mtd -r write /extdisks/sda1/rom/Factory.bin Factory
mtd -r write /extdisks/sda1/rom/OS1.bin OS1
mtd -r write /extdisks/sda1/rom/rootfs.bin rootfs
mtd -r write /extdisks/sda1/rom/OS2.bin OS2
mtd -r write /extdisks/sda1/rom/overlay.bin overlay
mtd -r write /extdisks/sda1/rom/crash.bin crash
mtd -r write /extdisks/sda1/rom/reserved.bin reserved
mtd -r write /extdisks/sda1/rom/Bdata.bin Bdata
mtd -r write /extdisks/sda1/rom/firmware.bin firmware

开始刷uboot

cd /tmp
wget http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/u-boot/uboot-xiaomi-mini-115200.bin -O uboot.bin

mtd -r write /tmp/uboot.bin Bootloader

# 等待重启

使用方法

  1. reset键开机,黄灯闪烁后松开
  2. 电脑使用网线连接lan口,将有线网卡的IP设为静态(192.168.1.2,255.255.255.0,192.168.1.1)
  3. 在浏览器中打开192.168.1.1
  4. 随意刷机

标签: router, xiaomi, uboot

已有 81 条评论

  1. 种子 种子

    想问下,我直接从小米路由器刷了openwrt,现在想刷breed或者u-boot,好像被锁死,应该怎么才能刷...

  2. [...]小米路由器mini折腾之刷不死uboot篇[...]

  3. 某人_ 某人_

    老高您好!我刷完U-Boot后想刷breed,可是它提示:
    Could not open mtd device: Bootloader
    Can't open device for writing!
    怎么办?

    1. 小刀 小刀

      我也是这个问题啊,请老高指导下

  4. AOne AOne

    老高您好!我刷uboot时忘了备份原厂uboot,现在想刷回来,能给个小米原厂uboot下载吗?谢谢!!

    1. http://www.right.com.cn/forum/thread-161906-1-1.html

      1. AOne AOne

        这是breed,不是官方的uboot吧?
        我用breed刷官方固件,启动方式也已选择小米mini,但启动后无限黄灯常亮(网口灯正常闪烁),这是什么情况?
        还有,官方的U盘刷机包中有uboot,但是我不知道如何提取,能否帮我提取一下,谢谢!

        1. 老高已经换6300了,小米不在身边啊

  5. 刷了不死uboot.现在好多的ROM都能装。但是就是弄不回小米的ROm了。怎么办。 什么招都用了。现在用的小云系统。但是还是想换回去小米的系统。不知道怎么弄呀。

    1. 赞!

    2. China_HS China_HS

      小米mini刷了breed后如果要从自带的官方固件启动的话要在breed(按住reset键插电源)里面的固件启动设置里面改成小米mini的启动方式(改完保存),这样就可以从官方固件启动了(第三方固件用其他的启动方式)

    3. 论坛问,没人回。完了。成砖了。

    4. uboot有变化,不懂先不要刷

    5. 刷完PandoraBox还能刷uboot吗 Could not open mtd device: u-boot Can't open device for writing!

    6. 这玩意本来就是有风险的,但是小米可以TTL刷机,找一个高手帮你救砖吧

    7. 那你在论坛里问问呗,我的路由在老家,没法帮你测。。

    8. 文中 AR/QCA/MT7620 Breed,功能强大的多线程 Bootloader 不行吗?

    9. 刷上了。但是现在路由器所有灯全亮。没办法进入控制台。怎么办呀。

  6. 122131 122131

    这样明显是人为损坏了吧,小米这么好心给你换么

    1. 只要没过保,你哪里买的?

    2. 大叔大婶 大叔大婶

      室友在线下活动抽奖中的

  7. 刷了UBOOT以后,reset键开机,黄灯闪烁后松开,电脑使用网线连接lan口,将有线网卡的IP设为静态(192.168.1.2,255.255.255.0,192.168.1.1)在浏览器中打开192.168.1.1显示网页找不到文件uboot打不开是什么问题?

  8. 大叔大婶 大叔大婶

    Could not open mtd device: Bootloader Can't open device for writing! 怎么解决啊,现在的是潘多拉,Uboot被我刷坏了

    1. 大叔大婶 大叔大婶

      关键现在我刷不了Uboot了

    2. 新版固件可以刷这个AR/QCA/MT7620 Breed,功能强大的多线程 Bootloader!

    3. 实在不行刷坏送修换一个

    4. 大叔大婶 大叔大婶

      在旧版官方开发板下刷了潘多拉uboot,然后进uboot显示错误,后来又手贱刷了潘多拉,现在潘多拉又刷不了uboot,原生uboot挂了又回不去官方系统

    5. 大叔大婶 大叔大婶

      对啊,有方法拯救么

    6. 你现在想刷回官方版?

    7. 你刷了那个uboot?

  9. 官方uboot被我弄掉了,在开发板刷不死uboot后进入提示找不到uboot,现在手贱刷了潘多拉固件,然后再刷uboot提示 Could not open mtd device: Bootloader Can't open device for writing!

  10. 請問博主 是否有試過刷 FireWRT 的 U-Boot 呢?

  11. abc abc

    话说博主是不是没更新这篇文章了,但是大多数搜索而来的同仁应该还在刷老的那个uboot,但是过于老旧了,而实际上小米更新很多版本了,所以很多问题。 下面这个貌似是之前uboot作者重新编写的一个web界面的bootloader,还在不断更新,也支持小米mini,博主可以更新下文章,也减少看这帖子的各位把路由给刷坏的几率 http://www.right.com.cn/forum/thread-161906-1-1.html

  12. 囧

    大哥,刷了uboot后就进不去小米后台了,U盘刷机按reset键黄灯狂闪不停,能又解决办法么,谢谢了

  13. cat /proc/mtd之后看到没有mtd11,这个正常吗。现在只是刷了一下开发版获取SSH, 小米路由器MINI(R1CM) MiWiFi 开发版 2.3.76

    1. uboot版本有点低了,不建议刷

  14. 我刷了Uboot后想刷回原版ROM,但是显示“固件校验失败!请检查您的文件是否符合您的设备! ”,这样只能刷pandorabox了

    1. root admin uboot可能需要高手提取

    2. 貌似需要更新一下uboot

    3. TT TT

      同样问题

    4. 傑傑 傑傑

      要如何刷回小米的 uboot 呢? 要像刷 Pandorabox Uboot 那樣? 但我不知道在 Pandorabox 下的 ssh 的用戶名及密碼.......

    5. 你刷的开发还是稳定?

    6. 傑傑 傑傑

      2.4.9 稳定版, 想刷回原廠因 Pandorabox 無法使用無線中繼 ......

    7. 可是插了U盘桶reset开机后直接进了UBOOT,官方ROM就刷不了

    8. 刷官方的直接用u盘应该可以

  15. 我的小米路由mini是0.4.X开发版的, 插上了fat和fat32的u盘、读卡器, xshell总是提示 dd: can't open '/extdisks/sda1/rom/ALL.bin': No such file or directory 怎么回事呢? 希望能得到赐教,不胜感谢。

    1. 不是 dd if=/dev/mtd0 of=/extdisks/sda1/rom/ALL.bin 应该 是 dd if=/dev/mtd0 of=/dev/sda1/rom/ALL.bin 都查完了你u盘目录了 怎么还按照原来的写?

    2. 十分感谢,谢谢。

    3. 按你所说是不行滴 [email protected]:~# dd if=/dev/mtd0 of=/dev/sda1/rom/ALL.bin dd: can't open '/dev/sda1/rom/ALL.bin': Not a directory /dev/sda1 就挂在了/extdisks/sda1/ 出错的根本原因就是/rom目录不存在造成的,和挂载点根本就没有一毛钱关系。

    4. 得到结果: ............. /dev/sda1 3.7G 2.6G 1.1G 71% /extdisks/sda1 没有问题。 接着运行 dd if=/dev/mtd0 of=/extdisks/sda1/ALL.bin 得到结果 :32768+0 records in 32768+0 records out 拔下u盘(不会在linux下卸载u盘),到电脑看,找到了ALL.bin 在u盘的根目录下建立rom目录, 重新把u盘插入路由器,运行xshell,输入命令:dd if=/dev/mtd0 of=/extdisks/sda1/rom/ALL.bin 再次得到上面的结果 。 结论:备份的命令不建立目录,u盘中没有rom目录就会报错。如果要备份的话,要么自行建立rom目录,要么去掉命令中的/rom。 BTW,备份文件的时候,得到的数字不完全一样,比如 384+0 records in 384+0 records out 128+0 records in 128+0 records out 32000+0 records in 32000+0 records out 哎,要不是爆出后门事件,就不会这么快刷机了。

    5. df -h 看一下挂载到哪儿了

    6. liu liu

      先建立rom文件夹就好了

  16. 无名 无名

    老高你好,请问我MiWiFi 开发版 2.1.78 查看MTD分区备份的时候发现没有firmware.bin有没有问题?

    1. 能贴一下执行结果吗?

    2. 无名 无名

      解决了,新版固件firmware.bin被小米动态了。降级固件解决!

  17. 您好 我想请教个问题。 我没有在原厂环境刷的uboot 而是刷了pandora之后想要刷uboot 版本是: 主机型号 Xiaomi mini Board 固件版本 PandoraBox R2 14.09 / LuCI Trunk (0.12+svn-r1024) 内核版本 3.14.44 刷的pandora是 http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/stable/PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1024-20150608.bin [[email protected]:/root]#cat /proc/mtd dev: size erasesize name mtd0: 00030000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00010000 00010000 "Factory" mtd3: 01000000 00010000 "fullflash" mtd4: 00f80000 00010000 "firmware" mtd5: 001230fb 00010000 "kernel" mtd6: 00e3cf05 00010000 "rootfs" mtd7: 00860000 00010000 "rootfs_data" mtd8: 00020000 00010000 "panic_oops" mtd9: 00010000 00010000 "culiang-crash" mtd10: 00010000 00010000 "culiang-reserved" mtd11: 00010000 00010000 "culiang-Bdata" 我把uboot (下载地址 http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/u-boot/uboot-xiaomi-mini-115200.bin) 然后我执行了 [[email protected]:/root]#mtd write uboot.bin u-boot #u-boot.bin放在了/root里 #出现了这个结果 Could not open mtd device: u-boot Can't open device for writing! 请问是怎么回事儿啊? 我google了一下 说是 没有写入uboot的权限。 如能赐教 不胜感谢。

    1. 的确如你所说的,必须在小米ssh后的固件里才能刷uboot。谢谢!

    2. 可以试试

    3. 还是一样的输出 Could not open mtd device: u-boot Can't open device for writing

    4. 难道新版把uboot锁死了?试试用原版刷

    5. 新版pandora把ubboot锁死了 刷回原版估计 在刷uboot就成功了

    6. mtd -r write /tmp/uboot.bin u-boot 试试

  18. jay jay

    用Uboot刷了Padorabox的稳定版后,怎样用Uboot重新刷testing版本啊?

    1. pandorbox后台就能刷,系统->备份升级

  19. xiao xiao

    你好 昨天按这个备份的小米MINI 结果没有Bdata和firmware.bin 刷了UBOOT换潘多拉 现在想刷回原版 SN会丢失吗?

  20. xiao xiao

    这样直接恢复就行了吗?太感谢了

    1. xiao xiao

      指定官方的刷不了。是不是还要解密固件??怎么搞?

    2. 那就用UBOOT指定官方固件刷吧

    3. 最好用U盘刷,不要出错

    4. 不要用命令,官方刷机的方法你忘了吗?

    5. xiao xiao

      把备份的问件放在U盘根目录 直接用官方的方法刷?这些都放根目录吗?用不用改名字?

    6. xiao xiao

      我刷了不死uboot 用官方的方法好像刷不了 等了10多分钟还是黄灯闪

    7. xiao xiao

      U盘 插上直接用上面的恢复命令就可以了吧

    8. 你不是要刷回原版吗? 只需要一个官方bin就行了

添加新评论