openwrt下完整备份/还原的方法
原创 ccbcfan http://www.openwrt.com.cn/bbs/viewthread.php?tid=1273 使用openwrt.cn以来,对我这种喜欢折腾的人来说,一般都安装了很多的IPK,一直不停的升级、安装、调试,确实是个很头痛和很费时间的问题!! 保存&应用后,你就可以使用“系统”---“ 备份/恢复”菜单进行完整备份和恢复了(包括你在刷固件后你所做的所有安装改动,如安装的所有驱动、软件、配置等) b、备份 RG100A用mtd命令备份还原实例 cat /proc/mtd 显示Flash分区 root@OpenWrt:~# cat /proc/mtd 其中 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 然后将=/tmp/rootfs_data.bin 用winscp 下载到电脑 还原 将备份的rootfs_data.bin 上传到=/tmp/下 用这种方法可以直接还原设置与已安装的软件 ,相当于GHOST openwrt 命令下刷固件方法 先将固件用winscp上传到/tmp/下 然后 mtd -r write /tmp/固件.bin firmware 有时是mtd -r write /tmp/openwrt-brcm47xx-squashfs.trx linux 复位 打包成openwrt 恢复配置备份文件 tar.gz 先将文件设置属性 打包tar -zcvf /tmp/bak.tar.gz /etc /usr 将backup.tar.gz 上传到 / 目录下 执行
openwrt的系统备份只能备份有关配置文件,其他驱动、软件还得去重新安装;尤其是openwrt中文版的内核跟官网的kmod还存一定的兼容问题,有时不得不停的找不同的kmod源,确实很麻烦!
所以一直想找一种比较完整的备份方法,要求就是能将原来系统所安装的所有驱动、软件、配置都备份下来,系统升级后,直接恢复就行了!!经过摸索,现在基本找到了实现了完整备份/还原的方法,在此感谢国外网友的指点!!
openwrt backfire 10.03 完整备份的方法:
1、修改系统备份的一键备份/恢复方法(安全、推荐!)
进入web图形界面菜单: 概要--->用户管理界面--->更新固件时保存下列文件,将默认的保存项目全部删除,增加一个保存项目:/overlay
如下图:
也可以直接修改/etc/config/luci 文件中的部分内容如下:效果是一样的!
备份的文件会自动存放在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 分区情况:
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
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:~#
22016+0 records in
22016+0 records out
mtd -r write =/tmp/rootfs_data.bin rootfs_data
mtd -r erase rootfs_data
cd /
解包tar zxvf backup.tar.gz
rm -f /backup.tar.gz