分类: 电脑技术
作者: admin

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

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

openwrt backfire 10.03 完整备份的方法:

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

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

back.jpg
下载 (62.56 KB)

也可以直接修改/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

备份
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

还原
mtd -r write rootfs_data.bin rootfs_data

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