前言

树莓派的常用备份方法有两种全卡备份压缩备份,这里我只记录压缩备份,因为我树莓派用的是一张32G的内存卡,全卡备份文件太大了不宜存储。

起因

因为我是个纯小白,没有一点基础,折腾的过程中经常遇到各种问题,曾把树莓派的系统搞挂过好几次,每次只能重新烧写镜像,开机后还得反复一大堆操作,最难的就是安装宝塔面板了,非常浪费时间每次都要两三个小时,所以备份树莓派的系统就显得很重要了。

压缩备份

原理

树莓派的官方系统是基于Debian的,有两个分区:启动分区boot和根分区root,烧录系统的时候就是将这两个分区写入 SD 卡。初次开机后会将SD卡的剩余空间自动扩容到root分区,boot 分区则比较稳定。
对于树莓派系统的备份,首要就是对 boot 和 root 分区的备份。而 root 分区里面只要一部分空间存储有内容,剩下的部分是空的,假如间接备份的话那就是全部 SD 卡空间备份,也就是上面所说的全卡备份。而压缩备份则是备份 boot 分区和 root 分区中有内容的空间。

教程

个人建议操作之前先获取root权限sudo su root

然后把U盘挂载到树莓派上,这里注意U盘的容量要大于等于树莓派上SD卡的容量。

  • 运行lsblk命令查看usb挂载在哪里。一般应该sda是外接设备,然后在sda1后面可以看到外接设备的地址(如:/media/pi/4459-8791),记录下来,后面要用。

  • 安装dc3dd

    1
    sudo apt install dc3dd
  • 安装完成后运行以下命令(USB路径就是上面查到的如:/media/pi/4459-8791):

    1
    sudo dc3dd if=/dev/mmcblk0 of=【USB挂载路径】/pi.img

    运行过程会比较慢,需要耐心等待,运行完成后在U盘里就得到了一个img文件了,但是文件非常的大,这是还没压缩的文件。

  • 现在就需要借助PiShrink脚本来压缩img文件。依次运行以下命令即可(USB路径就是上面查到的如:/media/pi/4459-8791):

    1
    2
    3
    4
    git clone https://github.com/Drewsif/PiShrink/
    chmod +x PiShrink/pishrink.sh
    sudo mv PiShrink/pishrink.sh /usr/local/bin
    sudo pishrink.sh -z 【USB挂载路径】/pi.img

    最后的压缩过程会比较慢,并且没有进度条,务必确定脚本运行结束了再关闭窗口。压缩完成会生成一个.img.gz的压缩文件。

    写入

    镜像备份完要怎么写入呢?非常简单,解压生成的.img.gz文件打开Win32DiskImager软件,选择镜像文件设备,再点击下面的写入就可以了。