制作树苺派SD卡备份镜像——树苺派系统备份与还原指南
制作树苺派SD卡备份镜像——树苺派系统备份与还原指南
转载自科技爱好者博客
树莓派使用SD卡来安装系统,如果SD卡丢失或者损坏,那么树莓派上的数据都会丢失,所以一定要备份好SD卡。这篇文章可以帮你备份你的树莓派系统。主要内容为备份SD卡,制作树莓派系统镜像以及在需要的时候还原备份的方法。
一、准备工作
1、一台linux PC
2、树莓派SD卡
3、读卡器
二、备份树莓派
方法一:
如果你没有运行Linux 的电脑,通过windows也可以备份,只不过这种方法备份下来的文件比较大,SD卡容量多大,则备份文件多大。
首先将SD卡通过读卡器插入电脑,打开 win32diskimager ,输入镜像名 raspberry.img ,点击读,即可将树莓派SD卡文件转为镜像。
这种方法制作的镜像文件巨大,而且在还原的时候必须使用比镜像更大容量的SD卡,造成种种不方便。这种情况下我们可以选择方法二。
方法二:
1、挂载SD卡
如果在Ubuntu环境下,SD卡会自动进行挂载,我们可以直接进行第2步。自动挂载的情况下,使用 df -h 命令可以查看SD卡,如下图中的/dev/sdb1 /dev/sdb2 就是树莓派的SD卡,其中60M的分区sdb1是boot分区,15G的分区sdb2是树莓派的系统文件分区。
如果使用Centos或者其他linux操作系统,未自动挂载SD卡,我们则需要手动进行挂载。
使用以下命令进行挂载:
$ cd /media
$ sudo mkdir sdc1 sdc2
$ sudo mount /dev/sdc1 /media/sdc1
$ sudo mount /dev/sdc2 /media/sdc2
挂载完成后如下图中所示。
2、备份SD卡
使用 dd 命令可以直接备份SD卡。这里树莓派的SD卡的路径是 /dev/sdc1 和 /dev/sdc2 ,所以备份整个SD卡的路径就是 /dev/sdc。
输入备份命令:
$ sudo dd if=/dev/sdc | gzip>/home/lixinxing/raspberry.gz
其中备份文件要保存的位置、文件名和 SD卡的路径要根据实际选择。
这个命令可以在备份的同时压缩镜像大小,压缩完成后镜像有6.7G.
![镜像大小](http://www.lxx1.com/wp-content/uploads/2016/04/%E9%95%9C%E5%83%8F%E5%A4%A7%E5%B0%8F.png)
三、将树莓派镜像还原
备份完成后,如果需要还原树莓派,我们可以通过以下方法进行。
方法一:
在windows环境下,将备份文件解压,然后使用 win32diskimager 将备份文件写入到新的SD卡。
方法二:
在linux环境下,使用以下步骤将备份文件写入到SD卡。
1、删除SD卡分区。
使用 fdisk 命令对SD卡格式化
2、写入备份文件
$ sudo gzip -dc /home/lixinxing/raspberry.gz | sudo dd of=/dev/sdc
其中备份文件的位置、文件名和 SD卡的路径要根据实际选择。
这样就将备份还原到树莓派了,可以将SD卡插入树莓派启动!
四、镜像修复
成功将无法启动的的树莓派修复
今天将DHT11温湿度传感器连接到树莓派上读取温度和湿度信息,硬件连接好之后发现树莓派无法SSH远程登陆,查看电源灯亮着,网线也插好了,接着将树莓派连接到显示器上,再次启动发现出现故障,无法启动系统,提示以下信息:
CPU0:stopping
CPU1:stopping
– end Kernel panic – not syncing : VFS: Unable to mount root fa on unknow-block(179,2)
![- end Kernel panic - not syncing : VFS: Unable to mount root fa on unknow-block(179,2)](http://www.lxx1.com/wp-content/uploads/2016/07/QQ%E5%9B%BE%E7%89%8720160701211049-2048x1152.jpg)
初步分析:
刚开始比较慌,因为树莓派比较脆弱,其GPIO口输入电压不能超过3.3V,否则会烧坏树莓派,我怀疑做实验的时候接错了线。想到自己写了一个上传树莓派CPU和GPU温度信息的脚本,所以查看信息,发现最新的温度信息在昨天中午,这时基本就可以排除今天做实验损坏树莓派的可能,损坏原因可能为系统文件错误,可以重新制作系统镜像或者恢复备份文件。
恢复系统:
由于我的树莓派原来有备份,所以我找到了原来的备份文件,使用win32diskimage还原备份系统,重新上电,结果树莓派仍然不能启动
错误信息仍然为- end Kernel panic – not syncing : VFS: Unable to mount root fa on unknow-block(179,2)
恢复失败。
修复成功:
系统还原后仍然不能启动,这时我比较郁闷了,然后上网查找解决办法,说可以修复系统,假设SD卡分区为sdb2,则恢复命令为:
sudo fsck.ext4 -v /dev/sdb2
我将SD卡查到ubuntu主机上,结果可以正常读取到树莓派的SD卡分区,也不用修复了,再次将树莓派上电,绿灯闪烁,屏幕上也出现了系统正常初始化的信息,无法启动的树莓派修复成功!
![无法启动的树莓派修复成功](http://www.lxx1.com/wp-content/uploads/2016/07/QQ%E5%9B%BE%E7%89%8720160701211155-2048x1152.jpg)
如何查看SD卡的分区,使用这个命令即可:
lixinxing@li:sudo fdisk -l Disk /dev/sdc:14.6 GiB,15707668480 字节,30679040 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x1a2fe076 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sdc1 8192 96663 88472 43.2M c W95 FAT32 (LBA) /dev/sdc2 98304 30679039 30580736 14.6G 83 Linux