【树莓派】系统备份与还原
很多同学在开发树莓派的过程中会遇到因为操作失误导致系统无法正常启动或者偶然出现宕机的情况,此时如果没有备份,需要重刷系统是一件很崩溃的事情, 本文就讲解下如何简单的对Pi上的系统进行备份。
方法一、利用Win32DiskImager工具备份
首先下载Win32DiskImager, 下载地址如下:
https://sourceforge.net/projects/win32diskimager/
将SD卡接到windows主机上,打开Win32DiskImager工具,点击文件图标,输入选择要保存的路径,同时输入文件名称,然后选择“打开”,如下:
点击“读取”开始备份,耐心等待备份完成即可, 如下:
正常整个img备份下来的大小和实际TF的大小一样(如TF卡实际可读写大小为14.6G,那么备份出来的大小就是14.6G)。下次如果TF卡无法正常启动,可利用Win32DiskImager将备份好的img再次写入即可。
方法二、利用Linux dd命令主机备份
该方法要求:Linux主机可利用空间要大于SD卡的实际大小。 将SD卡接到Linux主机或者连接到Linux虚拟机后,用如下命令备份(SD卡的实际设备节点可通过lsblk确认):
:/$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk └─sda1 8:1 0 20G 0 part /sdb 8:16 1 14.6G 0 disk ├─sdb1 8:17 1 256M 0 part /media/linux/boot└─sdb2 8:18 1 3.3G 0 part /media/linux/rootfs:/$ sudo dd bs=4M if=/dev/sdb of=/mnt/hgfs/F/2021-01-02.img
如果需要还原,则直接通过dd命令还原,如下:
:/$ sudo dd bs=4M if=/mnt/hgfs/F/2021-01-02.img of=/dev/sdb
当然,由于dd出来的img会比较大,可以利用gzip等压缩工具对img进行压缩,命令如下:
:/$ sudo dd bs=4M if=/dev/sdb | gzip >/mnt/hgfs/F/2021-01-02.img.gz
此后,如果需要进行还原,可利用如下命令实现:
:/$ gunzip --stdout /mnt/hgfs/F/2021-01-02.img.gz | sudo dd bs=4M of=/dev/sdb
方法三、利用dump 和 restore 备份工具
偷懒直接参考别人写好的脚步,首先从在Pi上下载相关脚步, github地址如下:
git clone git://github.com/nanhantianyi/rpi-backup
然后在Pi上接入u盘,将其挂载在/media目录, 并利用backup.sh脚本备份系统,如下:
sudo mkdir -p /media/linuxsudo mount /dev/sdb1 /media/linuxcd rpi-backup/pi@pi:~/rpi-backup$ sudo ./back.sh /media/linux/2021-01-02.img
如果要还原,可直接使用Win32DiskImager或者Linux dd命令均可,还原后,再利用resize.sh脚本在Pi上进行root分区扩容,如下:
sudo bash resize.sh
喜欢的朋友关注下微信公众号,并帮忙点个“赞”和“在看”吧
END