选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2019-10-13
  • 更新:2021-04-26
树莓派系统镜像一键备份脚本, 可以将镜像压缩为实际使用了大小,不会备份整个 SD/TF 卡容量大小的镜像, 恢复时和官方镜像一样恢复, 使用起来非常方便


功能

树莓派系统镜像一键备份脚本, 可以将镜像压缩为实际使用了大小,不会备份整个 SD/TF 卡容量大小的镜像, 恢复时和官方镜像一样恢复, 使用起来非常方便

好不容易把一个系统弄成自己想要的样子了,想要克隆到另一张SD卡,或者备份保存,下次直接恢复到SD卡,所以需要一个一键备份脚本,将自己的系统备份成文件,下次轻松还原。
可以使用dd命令或者win32disk直接将储存卡内容保存成文件,但是缺点就是保存出来的镜像非常大,即储存卡的容量大小。所以需要一个方法让备份的系统文件最小化。

脚本实现一键备份储存卡的系统到img镜像,而且镜像很小(足够装下系统内容即可,不像使用dd命令或者win32disk进行块拷贝,镜像大小同储存卡大小一样.)

下载脚本

下载脚本

修改配置

修改脚本TODO配置部分,即储存卡的设备号,设备号用df -h或者sudo fdisk -l查看
比如插入读卡器后,我的电脑上储存卡设备是/dev/sdc
又比如直接在树莓派上备份,分别是/dev/root/dev/mmcblk0p1(在树莓派上备份镜像要注意储存卡剩余空间要大于已用空间)(另外如非必要请在电脑上备份而不是在树莓派上备份自己, 以免出现不必要的错误!)

  1. ######################################################
  2. ################## TODO: settings#####################
  3. src_boot_device=/dev/sde1 #/dev/mmcblk0p1
  4. src_root_device=/dev/sde2 #/dev/root
  5. src_boot_device_blkid=/dev/sde1 #/dev/mmcblk0p1
  6. src_root_device_blkid=/dev/sde2 #/dev/mmcblk0p2
  7. root_backup_size=1.3 # root backup size, 1 means the same as used size
  8. os_arch_manjaro=0 # for system Arch or Manjaro, else ubuntu/debian
  9. backup_on_pi=0 # 1: backup on pi(maybe not well supported), 0: backuo on PC (recommend)
  10. # !!!!!if back on PI, it's better to use rsync
  11. copy_use_rsync=0 # 1: use rsync to copy files, 0: use dump command to copy files
  12. # !!!!!if back on PI, you should umount all your disk devices like USB disk or add exclude here
  13. # rsync_exlude='--exclude relative_path1 --exclude relative_path2'
  14. rsync_exlude='--exclude home/pi/data/raid'
  15. ######################################################

执行备份脚本

  • 保证能连接网络的情况下执行脚本
    1. chmod +x backup_system.sh
    2. ./backup_system.sh

    脚本做的事情就是下载dosfstools dump parted kpartx这几个软件,然后利用这几个软件来进行备份,可放心使用

等待生成backup.img,成功后会打印

  1. =====================
  2. backup complete
  3. =====================

如果报错了也不要慌,仔细看看报错的内容, 适当修改下配置, 比如dump报错了可以用rsync尝试, 尽量在电脑上备份

保存备份文件

img文件比较大, 如果需要长期保存,可以压缩后保存备用:

  1. xz -zkv backup.img

或者

  1. tar -czvf backup.img.tar.gz backup.img

还原系统到 SD 卡

和烧录官方镜像一样了,比如

  1. sudo dd if=backup.img of=/dev/sdx status=progress bs=1MiB

或者使用 etcher 或者 win32diskimager 等等

然后启动系统, 可以进入系统, 也有可能没法登录, 按ctrl+alt+F1进入终端模式, 执行startx 可以发现报错为无法写入文件,使用df -h会发现根目录可用空间为0, 接下来需要扩展文件系统才能使用

扩展文件系统

还原后根目录/空间比较小,需要扩展分区大小

最简单的方法: 直接启动树莓派,这个时候可能图形界面无法加载, 按ctrl+alt+F1进入终端模式, 执行

  1. sudo raspi-config

advanced config中选择expand filesystem, 然后reboot就好了

另外,也可以使用linux下的图形工具gparted,或者直接用命令行工具resize2fs

参考资料

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-j5lk95.jpg