树莓派系统运行在一张内存卡中,随着树莓派安装的内容越来越多,越来越重要,所以系统的稳定安全显得尤为重要,下面就来介绍一下如何将树莓派系统盘进行整体备份到硬盘中。

备份树莓派系统盘(内存卡)到硬盘

列出所有块设备

1
lsblk -f

使用dd命令备份内存卡到硬盘

1
dd if=/dev/mmcblk0 of=/srv/dev-disk-by-uuid-e/backup4rpi/rpi.img bs=1M

压缩img镜像文件

dd默认会把整个内存卡进行备份,其中没有用到的空间也会备份,这样镜像大小几乎等于内存卡大小,比较浪费空间。可以用pishrink进行压缩,这样没有用到的空间就会被压缩掉。

下载 pishrink.sh

进入到img文件目录,执行

1
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

给pishrink.sh赋权限:

1
chmod +x pishrink.sh

执行压缩命令:

1
bash pishrink.sh rpi.img

可以看到,rpi.img从15GB压缩到了12GB。

还原系统

还原系统和新安装系统是一样的,用官方的 Raspberry Pi Imager 还原备份镜像文件即可

然后插卡开机即可

利用OMV设置定时备份任务

前面整个流程可以实现系统的备份与还原,最后可以利用定时任务实现定时备份,这里利用OMV的 系统/计划任务 新增一条备份任务。

编写backup.sh

进入备份文件目录/srv/dev-disk-by-uuid-e ,创建一个backup.sh文件:

1
touch backup.sh

编辑backup.sh,写入如下内容

1
2
3
4
5
6
#!/bin/bash
time=$(date "+%Y%m%d-%H%M%S")
dd if=/dev/mmcblk0 of=/srv/dev-disk-by-uuid-e/backup4rpi/rpi-${time}.img bs=1M
cd /srv/dev-disk-by-uuid-e/backup4rpi
# 使用pishrink进行img缩容,-z代表将缩容后的img继续压缩为gz格式
bash pishrink.sh -z rpi-${time}.img rpi-${time}-compress.img

打开 OMV/系统/计划任务,新建一个任务,在命令中写入sh /srv/dev-disk-by-uuid-e/backup4rpi/backup.sh,执行时间可以根据自己的需求来定,我设置的是每月1号的凌晨3点执行。

保存后,点击运行,查看任务是否可以被正确执行,等待一段时间,看到成功消息,说明任务执行成功,这样,系统就可以进行定时备份啦。