0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用Linux命令备份树莓派文件到SD卡上

454398 来源:工程师吴畏 2019-07-31 16:43 次阅读

对于所有曾经使用过Raspberry Pi的人来说,你可能已经体验过SD卡损坏的感觉,特别是当你的文件存储在其中。在Linux中使用几个非常简单的命令,您将可以轻松备份Raspberry Pi SD卡。并且,在需要时,将Raspberry Pi备份恢复到新的SD卡。

这个过程非常简单明了。将Raspberry Pi备份映像恢复到新SD卡后,您就可以将其插入并像旧系统一样使用它。另外本文介绍了如何备份具有多个分区的Raspberry Pi SD卡以及dd命令错误的解决方案:“dd:写入`/dev/sdc‘:输入/输出错误”。它还解决了将图像文件恢复到其上后无法使用Raspberry Pi SD卡的全部内存容量的问题。使用这个DIY Hacking教程来保护你在Raspberry Pi上的所有宝贵工作。

如何备份Raspberry Pi项目文件?

在这里,我们使用简单的dd命令来创建我们要备份的SD卡的映像(.img)。然后可以将此图像压缩并存储在您的PC中以备将来使用。在恢复Raspberry Pi备份时,您再次以相反的顺序使用dd命令并准备新的SD卡。但请注意,您只能将.img文件还原到具有与原始备份SD卡相同或更大内存容量的内存卡上。执行dd命令时请采取额外的预防措施,因为如果在其中输入不正确的目标或源地址,可能会导致您损坏硬盘。

步骤1:备份SD卡

首先,将Raspberry Pi SD卡插入到您的存储卡读卡器/插槽中PC。接下来,使用dd命令创建SD卡的映像文件。要正确识别您的卡,请在插入SD卡之前和之后执行“ df -h ”并观察新路径。这些新路径代表您的SD卡。您可能会注意到存储卡有多个分区。例如,当您执行“ df -h ”时,它可能会将您的SD卡列为/dev/sdc1和/dev/sdc2。在这种情况下,在执行dd命令时只使用“/dev/sdc”,包括两个分区,如下所示:

sudo dd if =/dev/sdc of =/home/ars/backup。 img

存储卡应在“if”下指定,备份目的地在“of”下指定。您也可以使用“bs = 1M”或“bs = 4M”来指定写入速度。

但是,执行上述命令后,有些人可能会遇到像dd这样的错误:写入`/dev/sdc’:输入/输出错误。对于那些没有收到此错误的人,请继续执行第二步。此错误通常是由于读取SD卡时遇到的一些错误引起的。在启动Pi时看到警告的人通常会遇到这种情况,并说他们应该手动执行fsck操作。这是由于SD卡卸载不当造成的。要克服此错误,您必须在SD卡上执行fsck操作。在执行此操作之前,请按以下步骤卸载SD卡:

umount/dev/sdc1

umount/dev/sdc2

接下来,执行“fsck”操作以纠正存储卡中的错误:

sudo fsck -C/dev/sdc1

sudo fsck -C/dev/sdc2

现在,取出读卡器或SD卡,然后重新插入。再次,执行如下的dd命令;它应该没有任何错误。如果它再次显示dd错误,请重复上述步骤。

sudo dd if =/dev/sdc =/home/ars/backup.img

步骤2:将Raspberry Pi备份恢复到新SD卡

现在,我们将从第一步恢复Raspberry Pi备份。如果您使用的SD卡中包含一些数据,那么您必须先将其格式化。如果您有一张全新的卡片,可能没有必要进行格式化,即使它不会受到影响。将新卡插入读卡器。使用“ df -h ”命令识别新的存储卡。如果卡上有多个分区,如/dev/sdc1和/dev/sdc2,请使用/dev/sdc格式化卡以包含两个分区。格式化卡之前,请卸载SD卡。因此,对于没有分区的SD卡:

umount/dev/sdc

对于使用了多个分区的SD卡:

umount/dev/sdc1

umount/dev/sdc2

接下来,使用此命令格式化卡片:

sudo mkdosfs -I - F32/dev/sdc

此后,您将拥有一张完全空白且格式化的SD卡。现在,取下读卡器或SD卡,然后将其重新插入PC。接下来,执行dd命令以在此新卡上恢复Raspberry Pi备份。使用“if”部分下的第一步创建的图像文件的位置和“of”部分下的新SD卡位置,如下所示:

sudo dd if =/home/ars/backup.img =/dev/sdc

现在您已经创建了原始Raspberry Pi SD卡的文件。将它插入你的Raspberry Pi,就像以前一样。

如果您使用的内存容量大于原始卡的新SD卡,当您执行“df -h”命令时,您会注意到新卡的大小与原始的SD卡,即使它实际上是一个更大的SD卡。为了充分利用新SD卡的整个空间,只需将卡插入Raspberry Pi即可启动。输入命令“sudo raspi-config”并选择“Expand root partition”选项。选择“完成”后,它会要求您在退出时重新启动。重新启动后,执行“df -h”命令,您将注意到SD卡达到其最大容量。

在任何情况下,如果遇到dd错误dd:写入`/dev/sdc‘:输入/输出错误,在第二步中,请像第一步一样执行fsck操作,并且将Raspberry Pi SD卡或存储卡读卡器卸下并重新插入PC后,再次执行dd命令。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • SD卡
    +关注

    关注

    2

    文章

    530

    浏览量

    63020
  • 树莓派
    +关注

    关注

    113

    文章

    1640

    浏览量

    104750
收藏 人收藏

    评论

    相关推荐

    STM32F412G-DISCO怎样用MX生成fatfs的代码?

    STM32F412G-DISCO怎样用MX生成fatfs的代码? SD例程能跑,但mx生成的代码不能正常运行,我生成代码后是不是还要配置一些东西?(我生成后只写了测试代码) 问题解决了,虽然我不知道我为什么不能直接使用mx生成
    发表于 03-12 08:15

    linux备份文件命令bak

    Linux系统中,备份文件是非常重要的,它可以防止数据丢失和损坏的风险。为了达到安全的目的,我们经常需要备份文件。在这篇文章中,我们将详细介绍Linux
    的头像 发表于 11-23 10:12 800次阅读

    linux恢复远端备份文件

    Linux系统中,恢复远端备份文件是一项非常重要的工作。当我们的数据丢失或损坏时,从备份文件中恢复数据可以帮助我们恢复到之前的状态。在本文中,我将详细介绍如何在Linux系统中恢复远
    的头像 发表于 11-23 10:08 242次阅读

    linux系统备份与还原工具

    Linux系统备份与还原工具是用于备份和恢复Linux操作系统的工具。在日常使用中,备份和还原是非常重要的操作,可以帮助我们保护数据并快速恢
    的头像 发表于 11-23 10:04 975次阅读

    linux删除文件命令rm

    Linux系统中,可以使用rm命令来删除文件或目录。该命令的功能是删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下的所有
    的头像 发表于 11-13 16:42 429次阅读

    树莓都有哪些功能,是什么编程的?

    怎么学习树莓树莓和传统单片机的区别是哪些,如果有了树莓该学哪些知识
    发表于 11-09 07:51

    linux解压gz文件命令

    Linux系统中,可以使用gzip命令解压.gz文件。gzip命令用于压缩和解压缩文件,使用方法如下: 解压.gz
    的头像 发表于 11-08 14:42 1607次阅读

    linux中查找文件命令

    Linux中,可以使用以下命令来查找文件: find 命令:可以在指定目录及其子目录中查找文件,支持根据
    的头像 发表于 11-08 14:24 606次阅读

    linux中删除文件命令

    Linux中,可以使用 rm 命令来删除文件。该命令有多个参数和选项可供使用,以根据不同的情况进行文件删除操作。例如: rm
    的头像 发表于 11-08 14:11 338次阅读

    树莓如何调整SD的分区大小?

    树莓如何调整SD的分区大小
    发表于 10-24 06:23

    如何用树莓学习Linux内核源码?

    怎么树莓学习Linux内核源码?​
    发表于 10-20 07:09

    如何为你的树莓准备一张SD

    树莓教程与应用
    发表于 10-07 08:18

    SD命令响应超时怎么解决?

    自己做的PCB板,芯片的STM32F407ZGT6,SDIO连接SD后,烧入程序一直显示超时,SD
    发表于 09-25 08:31

    基于树莓的嵌入式Linux开发教学

    + 虚拟机环境 + 交叉编译 + 驱动编程 + 应用层编程 ”开发链可以深入理解和控制嵌入式 Linux 系统,但因其复杂性而更适合需要定制 Linux 内核与驱动的精英开发、精英教育或研究者。树莓
    发表于 09-21 07:09

    【Milk-V Duo 开发板免费体验】(二)ubuntu下烧录linux系统sd,并在milk开发版运行linux系统

    milkv-duo-20230805-2316.img烧录至SD。 milkv-duo-20230805-2316.img为上篇中编译的img文件,/dev/sdb为sd
    发表于 08-11 19:55