制作树苺派SD卡备份镜像——树苺派系统备份与还原指南

制作树苺派SD卡备份镜像——树苺派系统备份与还原指南

转载自科技爱好者博客

树莓派使用SD卡来安装系统,如果SD卡丢失或者损坏,那么树莓派上的数据都会丢失,所以一定要备份好SD卡。这篇文章可以帮你备份你的树莓派系统。主要内容为备份SD卡,制作树莓派系统镜像以及在需要的时候还原备份的方法。

一、准备工作

1、一台linux PC

2、树莓派SD卡

3、读卡器

二、备份树莓派

方法一:

如果你没有运行Linux 的电脑,通过windows也可以备份,只不过这种方法备份下来的文件比较大,SD卡容量多大,则备份文件多大。

首先将SD卡通过读卡器插入电脑,打开 win32diskimager ,输入镜像名 raspberry.img ,点击读,即可将树莓派SD卡文件转为镜像。

win32

这种方法制作的镜像文件巨大,而且在还原的时候必须使用比镜像更大容量的SD卡,造成种种不方便。这种情况下我们可以选择方法二。

方法二:

1、挂载SD卡

如果在Ubuntu环境下,SD卡会自动进行挂载,我们可以直接进行第2步。自动挂载的情况下,使用  df -h 命令可以查看SD卡,如下图中的/dev/sdb1 /dev/sdb2 就是树莓派的SD卡,其中60M的分区sdb1是boot分区,15G的分区sdb2是树莓派的系统文件分区。

2016-04-02 15-03-06屏幕截图

如果使用Centos或者其他linux操作系统,未自动挂载SD卡,我们则需要手动进行挂载。

使用以下命令进行挂载:

$ cd /media
$ sudo mkdir sdc1 sdc2
$ sudo mount /dev/sdc1 /media/sdc1
$  sudo mount /dev/sdc2 /media/sdc2

挂载完成后如下图中所示。

2016-04-02 17-09-35屏幕截图

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.

镜像大小镜像大小

三、将树莓派镜像还原

备份完成后,如果需要还原树莓派,我们可以通过以下方法进行。

方法一:

在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)

初步分析:

刚开始比较慌,因为树莓派比较脆弱,其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卡分区,也不用修复了,再次将树莓派上电,绿灯闪烁,屏幕上也出现了系统正常初始化的信息,无法启动的树莓派修复成功!

无法启动的树莓派修复成功无法启动的树莓派修复成功

如何查看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
这样就可以看到SD卡的分区为/dev/sdc2。
posted @ 2020-07-01 18:34  乘风扶摇九万里  阅读(696)  评论(0编辑  收藏  举报