查看: 18966|回复: 5

[经验] 【杂谈】在树莓派上将现有系统复制到新存储卡

[复制链接]
  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-11-2 01:44:30 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 PokeBox 于 2014-11-2 01:51 编辑

    最初,使用树莓派的时候,也许也只是为了新鲜,所以用了一张容量比较小,速度比较慢的存储卡,但是用久后会发现感觉磁盘空间完全不够用,速度也成了个累赘。怎么办呢?如果买一张新的存储卡又要重新做系统,或者把现有的磁盘在电脑上复制出来,然后再重新烧写进新卡?oh,这太麻烦了。那么我就来介绍一下怎么在树莓派上直接把旧卡上的系统完整的直接写入新存储卡。
    前两天在京东买了个32G的Class10的闪迪TF卡给树莓派,把原来的金士顿8Gclass4换掉。

    如何把现在的系统转移到新的存储卡?
    把新买来的32G存储卡插入读卡器,然后接到树莓派上,如果没有异常树莓派会自动挂载磁盘,那么我们就需要先卸载掉磁盘。用df命令查看挂载的位置,然后用umount命令卸载掉【具体方法如:umount /media/disk】。
    接着,就是把现在的系统完整的复制到新卡上。由于树莓派本身就是Linux系统,所以我们可以参考苹果电脑烧写镜像的教程【毕竟mac系统也是基于Linux的……】,用
    dd bs=4m if=2013-02-09-wheezy-raspbian.img of=/dev/rdisk1
    命令把镜像写入磁盘。而在这里我们就不需要镜像了,直接把正在使用的存储卡dd过去。
    所以我们用的命令是这样的:
    dd bs=4m if=/dev/mmcblk0 of=/dev/sda
    mmcblk0就是树莓派上的存储卡【正在使用的】
    sda就是插入的USB存储设备【可能会随着接入的设备多少而改变,如可能为sdb,sdc等,自己根据情况去判断是哪一个】
    然后耐心的等待写入完成就可以了。
    用命令init 0 或者其他命令关机【我习惯用init 0,简单方便容易记……】,然后把树莓派断电,取出旧的TF卡,插入新的TF卡,上电开机。之后你会发现树莓派上的配置还是原来的样子,磁盘大小也没有改变。那么为了能使用整个完整的存储卡,我们还需要像刚安装好镜像那样用raspi-config的第一个功能来扩展整个磁盘。这样重启后就可以使用整个32G的磁盘了。

    在使用了新的存储卡后对比发现,原来的8G C4卡经常容易出现磁盘分区错误,特别是在意外断电的时候,经常造成分区读取错误,数据丢失……而且速度也很慢。
    而现在换成32G C10的卡后,速度明显得到了提升,传输速度从原来的2M/s提升到15M/s,而且磁盘也相对稳定的多,至少到现在还没出现有坏块的现象。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-8-28 11:59
  • 签到天数: 1558 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-11-2 17:20:33 | 显示全部楼层
    嘿嘿,不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-12-28 09:47:13 | 显示全部楼层
    451506709 发表于 2014-11-2 17:20
    嘿嘿,不错

    你好,你用这个方法做成功了吗,我的派有两个分区,boot和root,用这个方法,root分区怎么复制到卡里
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2018-1-18 18:59:01 | 显示全部楼层
    l13191292468 发表于 2017-12-28 09:47
    你好,你用这个方法做成功了吗,我的派有两个分区,boot和root,用这个方法,root分区怎么复制到卡里 ...

    直接就已经把所有分区都复制了,root你在windows上是看不到的,因为它是ext格式的分区,win默认不支持读取这样的分区,你在linux上是可以看到的。mmcblk0就是整个存储卡,mmcblk0p1是boot分区,mmcblk0p2是root分区
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-3-1 21:55:40 | 显示全部楼层
    问一下,你的32GB的SD卡的文件系统是ext4还是windows的NTFS?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-3-1 22:40:36 | 显示全部楼层
    plus 写入指令: dd bs=4m if=/dev/mmcblk0 of=/dev/sda
    return:  dd: invalid number: '4m'   error
    搜索了一下解决办法是 把4m 改写-> 4M
    原因肯能是因为系统安装了GNU coreutils。

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-18 13:24 , Processed in 0.152290 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.