记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

openwrt下完整备份/还原的方法

openwrt下完整备份/还原的方法

原创 ccbcfan    http://www.openwrt.com.cn/bbs/viewthread.php?tid=1273

 

使用openwrt.cn以来,对我这种喜欢折腾的人来说,一般都安装了很多的IPK,一直不停的升级、安装、调试,确实是个很头痛和很费时间的问题!!
openwrt的系统备份只能备份有关配置文件,其他驱动、软件还得去重新安装;尤其是openwrt中文版的内核跟官网的kmod还存一定的兼容问题,有时不得不停的找不同的kmod源,确实很麻烦!
所以一直想找一种比较完整的备份方法,要求就是能将原来系统所安装的所有驱动、软件、配置都备份下来,系统升级后,直接恢复就行了!!经过摸索,现在基本找到了实现了完整备份/还原的方法,在此感谢国外网友的指点!!

openwrt  backfire 10.03 完整备份的方法: 

1、修改系统备份的一键备份/恢复方法(安全、推荐!)

进入web图形界面菜单: 概要--->用户管理界面--->更新固件时保存下列文件,将默认的保存项目全部删除,增加一个保存项目:/overlay
如下图:

back.jpg



也可以直接修改/etc/config/luci 文件中的部分内容如下:效果是一样的!

  1. config 'extern' 'flash_keep'
  2.        option 'overlay' '/overlay'
  3.       
复制代码

保存&应用后,你就可以使用“系统”---“ 备份/恢复”菜单进行完整备份和恢复了(包括你在刷固件后你所做的所有安装改动,如安装的所有驱动、软件、配置等)
备份的文件会自动存放在PC上,你可以试试重新刷固件后, 使用“系统---恢复”来将系统进行完全恢复了,还可以在有多台设备需要同样安装设置时进行快速设置了!!
你也可以修改这个文件名并上传替换为出厂默认备份文件(/etc/backup-openwrt.org.cn.tar.gz ),在系统发生严重问题时,利用reset键或恢复出厂设置,就可以随时进行恢复到备份前的正常状态。
注意:此备份/恢复方法,适用于系统内核不变的系统升级、备份/恢复!!!

2、Ghost方法   (此方法有变砖风险,未经测试, 新手慎测试
一直想找出一种像Ghost样的wholeflash备份方法,但只知道能在JTAG下进行wholeflash备份,TTL下没找到!!
以下方法来源于openwrt官网,但只是针对WhiteRussian , backfire 10.03下能否有用,还未经测试!估计可能还需要做一些修改才行,所以只是提出来供大家交流,讨论!!
原贴:https://forum.openwrt.org/viewtopic.php?id=9122

1、WhiteRussian下分区备份和恢复:

----------------------------------
BACKUP

mount -o remount,ro /dev/mtdblock/4 /
dd if=/dev/mtdblock/1 > /tmp/wrt-linux.trx
mount -o remount,rw /dev/mtdblock/4 /
dd if=/dev/mtdblock/3 > /tmp/wrt-nvram.bin

----------------------------------
RESTORE

dd if=/tmp/wrt-nvram.bin of=/dev/mtdblock/3
mount -o remount,ro /dev/mtdblock/4 /
mtd -r write /tmp/wrt-linux.trx linux
----------------------------------

your image will be in /tmp you can saveit to your PC using WinSCP or similar software


2、以下为backfire 10.03下的情况:
a、查看Flash里面的MTD 分区情况:

  1. /usr/bin$ cat /proc/mtd
  2. dev: size erasesize   name
  3. mtd0: 00020000 00020000 "CFE"
  4. mtd1: 000dff00 00020000 "kernel"
  5. mtd2: 00ee0000 00020000 "rootfs"
  6. mtd3: 00a20000 00020000 "rootfs_data"
  7. mtd4: 00020000 00020000 "nvram"
  8. mtd5: 00fc0000 00020000 "linux"
复制代码

b、备份
dd if=/dev/mtd0 of=/tmp/cfe.bin
dd if=/dev/mtd1 of=/tmp/kernel.bin
dd if=/dev/mtd2 of=/tmp/rootfs.bin
dd if=/dev/mtd3 of=/tmp/rootfs_data.bin
dd if=/dev/mtd4 of=/tmp/nvram.bin
dd if=/dev/mtd5 of=/tmp/linux.bin

c、恢复:一直没找到过完整恢复的说明,只是一些只言片语,目前也没时间测试! 再次提醒:可能变砖哦!

mtd -r write linux.bin linux 
mtd -r write kernel.bin kernel
mtd -r write cfe.bin cfe

 

 

RG100A用mtd命令备份还原实例

cat /proc/mtd 显示Flash分区

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize name
mtd0: 00020000 00020000 "CFE"
mtd1: 000dff00 00020000 "kernel"
mtd2: 00ee0000 00020000 "rootfs"
mtd3: 00ac0000 00020000 "rootfs_data"
mtd4: 00020000 00020000 "nvram"
mtd5: 00fc0000 00020000 "linux"
root@OpenWrt:~#

其中 rootfs_data 为配置文件所在区,rootfs_data 相当于/overlay

mtd3: 00ac0000 00020000 "rootfs_data" 

rootfs_data所在分区是mtd3 所以备份mtd3  

不同型号的路由 rootfs_data 所在分别不一样  不一定是mtd3 所以先用  cat /proc/mtd  查看

备份

#mtd unlock rootfs_data

dd if=/dev/mtd3 of=/tmp/rootfs_data.bin

root@OpenWrt:~# dd if=/dev/mtd3 of=/tmp/rootfs_data.bin
22016+0 records in
22016+0 records out

然后将=/tmp/rootfs_data.bin 用winscp 下载到电脑

还原

将备份的rootfs_data.bin 上传到=/tmp/下
mtd -r write =/tmp/rootfs_data.bin rootfs_data

用这种方法可以直接还原设置与已安装的软件 ,相当于GHOST

 

 openwrt 命令下刷固件方法

先将固件用winscp上传到/tmp/下

然后

mtd -r write /tmp/固件.bin firmware 

有时是mtd -r write /tmp/openwrt-brcm47xx-squashfs.trx linux

复位
mtd -r erase rootfs_data

 

打包成openwrt 恢复配置备份文件   tar.gz

先将文件设置属性

打包tar -zcvf /tmp/bak.tar.gz /etc /usr

 

 

将backup.tar.gz 上传到 /  目录下  执行 
cd /
解包tar zxvf backup.tar.gz
rm -f /backup.tar.gz

 

 

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):