OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
› OpenWrt 官方网站
mygoare
V2EX  ›  OpenWrt

请教如何备份当前 openwrt 固件

  •  
  •   mygoare · Sep 5, 2014 · 7521 views
    This topic created in 4443 days ago, the information mentioned may be changed or developed.
    自己折腾了个openwrt固件,
    请教下怎么 备份(不是备份配置文件),好下次折腾坏了恢复到自己比较满意的状态

    谢谢!
    19 replies  •  2015-11-27 23:54:52 +08:00
    ma0dan
    ma0dan
    Sep 5, 2014
    1
    好像有个snapshot功能,我不会用,你可用google一下
    hellov22ex
    hellov22ex
    Sep 5, 2014
    2
    我安装了luci,里面有备份的选项,还有升级的。。。。
    nanpuyue
    nanpuyue
    Sep 5, 2014❤️2
    3
    1.cat /proc/mtd
    查看 firmware 分区所对应的 mtd 设备,比如:
    dev: size erasesize name
    mtd0: 00040000 00020000 "u-boot"
    mtd1: 00040000 00020000 "u-boot-env"
    mtd2: 00040000 00020000 "caldata"
    mtd3: 00080000 00020000 "pot"
    mtd4: 00200000 00020000 "language"
    mtd5: 00080000 00020000 "config"
    mtd6: 00300000 00020000 "traffic_meter"
    mtd7: 00200000 00020000 "kernel"
    mtd8: 07700000 00020000 "ubi"
    mtd9: 07900000 00020000 "firmware"
    mtd10: 00040000 00020000 "caldata_backup"
    这里就是mtd9
    2.dd if=/dev/mtd9 of=/tmp/firmware_backup.bin
    得到固件备份文件 firmware_backup.bin,在 /tmp 目录下
    3.恢复该固件:
    将 firmware_backup.bin 上传至 /tmp,使用命令 mtd -r write /tmp/firmware_backup.bin firmware 即可恢复,恢复完成路由器会自行重启
    nanpuyue
    nanpuyue
    Sep 5, 2014❤️6
    4
    不过,如果在没有重刷固件的情况下,我建议仅对 /overlay 进行打包并备份:
    tar -czvf /tmp/overlay_backup.tar.gz /overlay
    然后下次直接将 overlay_backup.tar.gz 上传至 /tmp ,然后清空 /overlay 并恢复备份:
    rm -rvf /overlay/*
    cd / && tar -xzvf /tmp/overlay_backup.tar.gz
    ChangeTheWorld
    ChangeTheWorld
    Sep 5, 2014
    5
    @nanpuyue 照你这样操作备份出来的固件比刷进去的固件 大了7-8M,我的设备是WNDR3800,mtd2是firmware,这是怎么回事,谢谢
    kttde
    kttde
    Sep 5, 2014
    6
    @ChangeTheWorld 大是肯定的,你刷原来的openwrt固件后,难道不装一些软件吗?比如中文语言包,这都会增加体积
    Rocketime
    Rocketime
    Sep 6, 2014 via Android
    7
    最简单的方法(至少我是这样认为的),用编程器把flash里的数据读出来。之后随你怎么折腾,有问题了,再用编程器把数据写进去就是了😁
    no13bus
    no13bus
    Sep 6, 2014
    8
    @hellov22ex 请问点击界面上面的配置选项,然后点击 save&apply的作用是不是跟修改配置文件 比如cgminer的作用是一回事。为什么我手工修改cgminer的时候,添加一个频率配置选项不成功,但是在界面上就可以。
    hellov22ex
    hellov22ex
    Sep 6, 2014
    9
    @no13bus 是的,你的后一个问题我不清楚了,我这两个都能成功的
    no13bus
    no13bus
    Sep 6, 2014
    10
    @hellov22ex 就是加频率。类似这样的。option freq '17:250:1286' 有时候我直接手动加一条这个信息到配置文件里面去,Luci界面报错。说是lua脚本出问题了。
    mygoare
    mygoare
    OP
    Sep 6, 2014
    11
    @ma0dan
    @hellov22ex
    @nanpuyue
    @ChangeTheWorld
    @kttde
    @Rocketime
    @no13bus

    感谢大家的回复与帮助, 用 @nanpuyue 所说的第二种备份 overlay 的方法成功了,我的设备是hg255d, 用第一种备份 固件的时候,每次都失败,hg255d路由会自行重启。。
    hellov22ex
    hellov22ex
    Sep 6, 2014
    12
    @no13bus 这个我就不知道了,我对Luci的脚本不了解,不知道你这么改是否会造成错误
    xcmsgdtc
    xcmsgdtc
    Dec 30, 2014
    13
    感觉很有用,mark一下
    kqz901002
    kqz901002
    Feb 8, 2015
    14
    @mygoare 可能是内存太小,你可以直接备份到USB设备
    mygoare
    mygoare
    OP
    Feb 9, 2015
    15
    @kqz901002 谢谢!!现在在折腾极路由了
    hzqim
    hzqim
    Feb 26, 2015
    16
    @nanpuyue 请问这两种方法有什么不同?
    除了固件之外,软件的配置文件是否也一并备份了?

    谢谢回答!
    hzqim
    hzqim
    Feb 27, 2015
    17
    @nanpuyue 抱歉,自己看帖不仔细!
    前者备份有 15.8 M
    后者备份只有 几百K,只包含一些配置文件而已

    只是还没有验证前者备份的bin有没有配置文件。
    ddqp
    ddqp
    Mar 21, 2015
    18
    我备份完后,有60M这么大,为啥啊
    kqz901002
    kqz901002
    Nov 27, 2015
    19
    @ddqp 这个应该和你的 flash 大小一样,你的 flash 应该是 64M 的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2678 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    ♥ Do have faith in what you're doing.