1 前言
树莓派是一个可玩性很高的系统,经常存在系统安装各种软件或进行各种改动后需要重装系统的需求,但不论是官方教程还是网友的文章,目前重装系统都是使用镜像复制软件将img文件内容写入SD卡的方式(Etcher, Win32 Disk Imager, dd命令等),此方式的缺点需要是全盘写入,速度较慢,而且会丢失整个SD卡的数据,如果手动设置过分区,这些设置及数据文件会全部丢失。
实际上系统运行一段时间后,变动的文件只是少部分,如果能重新恢复这一部分文件,而不重写大部分未变动的文件,将大幅提高恢复速度,而且基于文件的方式可灵活控制避免影响数据文件。以上需求可以使用Linux/Rasbian系统下重要的工具——rsync来实现。
2 条件
-
系统安装镜像文件(例如2020-02-13-raspbian-buster.img)
-
待还原的树莓派系统SD卡
-
运行Linux系统的计算机或运行另一个运行Rasbian系统的树莓派
3 步骤
-
以下命令均在Linux计算机或另一个树莓派的终端中运行,命令中用括号 [ ] 标注的内容需要根据实际情况替换。
-
查看系统镜像分区
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:~ $
- 挂载系统安装镜像及待还原的树莓派系统分区:
mkdir src
sudo mount -o ro,offset=[272629760] [yourpath/2020-02-13-raspbian-buster.img] src/
mkdir dest
sudo mount [/dev/sda2] dest/
- 通过rsync同步文件,使dest目录下的文件和src目录下的文件保持一致
sudo rsync -avzP --delete src/ dest/
- 验证同步结果
diff
或
meld
网友评论