基于文件同步方式快速还原或重装树莓派系统

1 前言

树莓派是一个可玩性很高的系统,经常存在系统安装各种软件或进行各种改动后需要重装系统的需求,但不论是官方教程还是网友的文章,目前重装系统都是使用镜像复制软件将img文件内容写入SD卡的方式(Etcher, Win32 Disk Imager, dd命令等),此方式的缺点需要是全盘写入,速度较慢,而且会丢失整个SD卡的数据,如果手动设置过分区,这些设置及数据文件会全部丢失。

实际上系统运行一段时间后,变动的文件只是少部分,如果能重新恢复这一部分文件,而不重写大部分未变动的文件,将大幅提高恢复速度,而且基于文件的方式可灵活控制避免影响数据文件。以上需求可以使用Linux/Rasbian系统下重要的工具——rsync来实现。

2 条件

  1. 系统安装镜像文件(例如2020-02-13-raspbian-buster.img)

  2. 待还原的树莓派系统SD卡

  3. 运行Linux系统的计算机或运行另一个运行Rasbian系统的树莓派

3 步骤

  1. 以下命令均在Linux计算机或另一个树莓派的终端中运行,命令中用括号 [ ] 标注的内容需要根据实际情况替换。

  2. 查看系统镜像分区

fdisk [yourpath/2020-02-13-raspbian-buster.img]

在 Command (m fofr help): 后输入 p ,将显示分区信息,找出扇区大小(512)及第二分区的起始扇区号(532480),用起始扇区号乘以扇区大小得到起始扇区偏移位置(532480*512=272629760),输入 q 退出fdisk

pi@raspberrypi:~ $ fdisk /media/pi/xxxx/2020-02-13-raspbian-buster.img

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /media/pi/xxxx/2020-02-13-raspbian-buster.img: 3.5 GiB, 3787456512 bytes, 7397376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xea7d04d6

Device                                              Boot  Start     End Sectors  Size Id Type
/media/pi/2400-8DCF/2020-02-13-raspbian-buster.img1        8192  532479  524288  256M  c W95 FAT32 (LBA)
/media/pi/2400-8DCF/2020-02-13-raspbian-buster.img2      532480 7397375 6864896  3.3G 83 Linux

Command (m for help): q

pi@raspberrypi:~ $ 
  1. 挂载系统安装镜像及待还原的树莓派系统分区:
mkdir src
sudo mount -o ro,offset=[272629760] [yourpath/2020-02-13-raspbian-buster.img] src/
mkdir dest
sudo mount [/dev/sda2] dest/
  1. 通过rsync同步文件,使dest目录下的文件和src目录下的文件保持一致
sudo rsync -avzP --delete src/ dest/
  1. 验证同步结果
diff
或
meld

0 参考

https://rsync.samba.org/documentation.html

你可能感兴趣的:(基于文件同步方式快速还原或重装树莓派系统)