openwrt全盘系统备份

# 为什么要做完整备份

因为一个完全适合自己的软路由器系统,实际上是需要配置和折腾很多东西的。有时候一个不小心 能会影响某一些功能的使用。
另外也是为了无缝升级配置

电报群里网友帮忙从op.supes.top 大神那边定制了一个固件。包含了一些我常用的一些功能。
但是实际使用的使用,还是发现很多问题:

主要是几个小问题
1、ipv6的转发问题(我ipv6 80 443 等端口都是封的,无法使用,所以还是干脆和ipv4一起从路由上转发后统一管理方便一些)
2、防火墙的一点小问题:op自己不能访问 外网+自己转发的端口。
3、vpn(ipsec)的一点问题,什么都不如自己随时连接到内网爽。
4、vpn访问外网和内网 以及梯子分流等

解决这些问题在朋友帮助下依旧花费了一个下午去调试。 为了防止后面搞坏,除了在luci界面备份一份etc之外,还是全盘备份一下比较安心。

原始img文件分区 为 2个分区 一个efi(/dev/sda1) 一个5G根(/dev/sda2),实际硬盘是32G msata

我这里挂上一个1T机械盘(/dev/sdb1)会自动挂载到 /mnt/sdb1

# DD备份方法

# 备份整个分区

1
2
3
4
5
6
7
# 创建备份目录
mkdir  /mnt/sdb1/openwrt
# 直接备份
dd if=/dev/sda2 of=/mnt/sdb1/openwrt/backup-20230110-overlay.img
# 压缩备份 
dd if=/dev/sda1 | gzip > /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-efi.img.gz
dd if=/dev/sda2 | gzip > /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-overlay.img.gz

# 还原

1
gzip -dc  /mnt/sdb1/openwrt/backup-XXXX.img.gz | dd of=/dev/sda2

记得 已经挂载的分区 是不可以还原的,需要先卸载后还原,但是肯定是无法从op里面直接卸载的。所以还原需要从另外一个系统里面操作 ,还是不太方便。

# tar备份方法

# 备份

efi备份(没太大必要)

1
tar -czvf /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-efi.tar.gz /boot  

overlay备份 openwrt的精髓

1
tar -czvf /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-overlay.tar.gz /overlay 

单独备份/etc (没太大必要)

1
tar -czvf /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-overlay-etc.tar.gz /overlay/upper/etc

# 还原

1
2
3
rm -rvf /overlay/* 
cd /
tar -xzvf /mnt/sdb1/openwrt/backup-XXXX-overlay.tar.gz

# 备份软件列表

方便自己后期查看管理

1
opkg list-installed > /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-soft-list.txt

# 关于自动备份

把上面命令 选择性 添加到计划任务 吧。也可以使用rclone等方法定时同步到云盘。自己折腾吧。

例如 每周2、周五 早上9点33 和50分 备份overlay 和软件列表

1
2
0 33 9 * * 2,5 *   tar -czvf /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-overlay.tar.gz /overlay
0 53 9 * * 2,5 *   opkg list-installed > /mnt/sdb1/openwrt/backup-$(date +%Y-%m-%d_%H)-soft-list.txt

# 优化的自动备份脚本

1
nano /etc/auto_backup.sh

内容

1
2
3
4
5
6
7
8
9
backupfilename=$(date +%Y%m%d_%H%M%S)
backuppath1="/opt/openwrt-backup"
# mkdir /opt/openwrt-backup
tar -czvf $backuppath1/$backupfilename-overlay.tar.gz /overlay
opkg list-installed > $backuppath1/$backupfilename-soft-list.txt

# rm -rvf /overlay/*
# cd /
# tar -xzvf /mnt/sdb1/openwrt/backup-XXXX-overlay.tar.gz

添加计划任务 每天6点12点18点23点分别备份一次
等折腾顺利,就不用这样频繁备份了

1
32 6,12,18,23 * *  * sh /etc/auto_backup.sh

参考文章:https://zhzhzhy.github.io/2022/03/20/2022/openwrt-bakcup-step

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计