树莓派-系统sd卡迁移

缘起

在前几个月的时候,树莓派3b工作很不稳定(见这篇博文),总是在运行一段时间或者高io/cpu负载时出现卡死问题。

最终定位到的原因为:树莓派的sd卡由于作为系统使用有很大的损耗,系统在高负载时sd卡会罢工,整个系统挂掉。

这里记录下当时树莓派备份、迁移sd卡的过程,作为一个回顾以及记录。

折腾过程

1、备份系统

备份时一个非常好用的linux命令就排上用场了,这个命令就是日常经常用来测试写磁盘速度的dd命令。

使用如下命令备份

dd if=/dev/mmcblk0 of=[other_device]/rpi_backup.img bs=4M

注意:标准安装时系统sd卡设备是这个mmcblk0,其他情况下请使用df -h查看根分区/的设备是哪个
注意1:注意of参数后边的路径最好不是树莓派系统的路径,比如插在树莓派上的u盘、移动硬盘等

2、还原系统

备份时使用了dd,还原时也是一样,只不过是命令的if和of参数位置换了。

注意:此时需要一台UNIX*系统的电脑,比如mac或者linux系统,将备份文件和新的需要作为树莓派系统的sd卡插入电脑。因为直接在树莓派上搞,同时读写可能会出问题。

使用如下命令还原

dd if=rpi_backup.img of=[/dev/sdc0] bs=4M

如果使用了gzip压缩,可能是下面的命令
gzip -dc rpi_backup.img | dd of=/dev/sdc0

注意:此处的sdc0为将新的sd卡挂载到UNIX电脑上的磁盘分区名称,实际中请根据df -h 的结果判断后修改

3、启用新sd卡

经过上面2个步骤,树莓派的系统sd卡已经从介质上完成了迁移,我们只需要断电,换上新的sd卡,重新开机即可。系统和之前是完全一样的。

总结

由于我自己使用UNIX系统的电脑比较熟,同时也有设备,因此此次折腾使用的是unix技术栈下的方案。

其实也有一些不需要unix系统的方法,比如把树莓派系统sd卡拔下来放在windos之类的电脑上,使用特定软件读取然后写入分区,此处就不在累述了。

另外本文所述的方法,存在一个缺点:备份文件的大小将和系统sd卡的总大小一样,不管系统sd卡有没有占满,存在备份文件较大的问题,但是在自用迁移时不是什么大问题。

参考文档

https://blog.csdn.net/asukasmallriver/article/details/76807121
https://blog.csdn.net/dxuehui/article/details/51165113


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。