树莓派备份和恢复系统

树莓派备份和恢复系统

环境

raspbian latest
macOS 10.14

写在前面

该文章是完全备份 不是增量 也不需要用额外的第三方软件。

备份和恢复只需要两行命令 非常简单 且备份文件不会很大

视磁盘使用率。

因为是全盘备份 所以推荐你的 TF 卡不要太大 否则在还原的时候会耗很长的时间

如果你追求简单的备份 而不在乎恢复时间的话 仍然推荐。

备份

cmd:

sudo dd if=/dev/mmcblk0 | gzip>/home/pi/raspberry.gz

使用 Gzip 可以大大的压缩未使用的磁盘空间

gzip> 后面跟的是你备份的文件路径

dd if= 后面跟的是你树莓派 SD 卡的设备挂载点 因为我们是针对全盘备份的 所以这里面包含 boot 分区和根分区

在操作完成之后把 /home/pi/raspberry.gz 拷贝出来即可

恢复

注意 这里是用 macOS 的 有些地方有一些区别 不要在你的 linux 上直接用

cmd:

sudo gzip -dc raspbian.gz | sudo dd of=/dev/rdisk2 bs=4m

注意:

  • macOS 识别到的设备挂载点是 disk2 这里为什么要加上 r 呢?

    /dev/rdisk 节点是字符特殊设备,但在 BSD 意义上是“原始”并且强制块对齐 I /O. 它们比缓冲区缓存更接近物理磁盘。另一方面,/dev/disk 节点是缓冲块特殊设备,主要由内核的文件系统代码使用。

  • bs=4m 这个单位是不是少了大小写?

    bs 在 MacOS 上的单位要小写 而不是大写。

把 TF 卡插回树莓派 上电 开机。


大功告成

TIPS

最开始的目的就是为了折腾树莓派系统,假设我折腾失败了 再按照原来的方式重新安装一遍 raspbian 再装软件 配置设定,显得非常麻烦 且耗时间。

所以建立一个系统备份还原点 我可以在几分钟的时间内让它恢复到折腾前的状态。非常方便。

挂载点

上文中所有的挂载点都是需要自己找的 df -hl,diskutil list
等等 很多命令都可以找到设备挂载点 用你最熟悉的就行。

dd 恢复查看进度

我的 TF 卡是 16GB 的 class10 恢复时间在十分钟左右 在这期间 你可能不知道 dd 命令执行了多少 因为它没什么输出

先找出 dd 的 PID

然后再用 kill -USR1 {PID} 来显示 dd 的进度信息(在 dd 执行的窗口中)

kill 只是发送一个信号 并不是 "杀进程"

当然还有别的方法(我没试过)

  • dd 命令后面加 status=progress
  • pv pv -tpreb /dev/sda1 | dd of=/dev/zero

参考自 dd 命令显示执行进度

本文链接:https://blog.inmind.ltd/index.php/archives/47/
This blog is under a CC BY-NC-SA 3.0 Unported License