<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="openwrt下完整备份/还原的方法">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2011-03-19 14:52<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
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图形界面菜单： 概要---&gt;用户管理界面---&gt;更新固件时保存下列文件,将默认的保存项目全部删除，增加一个保存项目：/overlay
如下图：





也可以直接修改/etc/config/luci 文件中的部分内容如下：效果是一样的！




    config 'extern' 'flash_keep'

           option 'overlay' '/overlay'

          




复制代码

保存&amp;应用后，你就可以使用&ldquo;系统&rdquo;---&ldquo; 备份/恢复&rdquo;菜单进行完整备份和恢复了（包括你在刷固件后你所做的所有安装改动，如安装的所有驱动、软件、配置等）
备份的文件会自动存放在PC上，你可以试试重新刷固件后， 使用&ldquo;系统---恢复&rdquo;来将系统进行完全恢复了，还可以在有多台设备需要同样安装设置时进行快速设置了！！
你也可以修改这个文件名并上传替换为出厂默认备份文件（/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 &gt; /tmp/wrt-linux.trx
mount -o remount,rw /dev/mtdblock/4 /
dd if=/dev/mtdblock/3 &gt; /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 分区情况：




    /usr/bin$ cat /proc/mtd

    dev: size erasesize   name

    mtd0: 00020000 00020000 &quot;CFE&quot;

    mtd1: 000dff00 00020000 &quot;kernel&quot;

    mtd2: 00ee0000 00020000 &quot;rootfs&quot;

    mtd3: 00a20000 00020000 &quot;rootfs_data&quot;

    mtd4: 00020000 00020000 &quot;nvram&quot;

    mtd5: 00fc0000 00020000 &quot;linux&quot;




复制代码

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 &quot;CFE&quot;
mtd1: 000dff00 00020000 &quot;kernel&quot;
mtd2: 00ee0000 00020000 &quot;rootfs&quot;
mtd3: 00ac0000 00020000 &quot;rootfs_data&quot;
mtd4: 00020000 00020000 &quot;nvram&quot;
mtd5: 00fc0000 00020000 &quot;linux&quot;
root@OpenWrt:~#

其中 rootfs_data 为配置文件所在区，rootfs_data 相当于/overlay

mtd3: 00ac0000 00020000 &quot;rootfs_data&quot; 

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


 




 
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
