树莓派复制系统到新内存卡教程

原来用树莓派的时候,用的是8G的内存卡作为系统分区。
然而在安装了众多软件之后,7.2G空间只剩凄凄惨惨的300M...
于是我在双十二,思考了几个月终于还是狠下了心,剁手一个64G大小的内存卡。拿来替换掉原来的8G,拯救我的小树莓派。但是我的小卡,虽然小,但是上面东西、配置都不少,如果在新内存卡重新装系统,要折腾很久才能恢复到现在的状态,所以就想直接复制系统过来,这样就好多了。但是也遇到了很多问题。

导语完成,下面是操作部分


必要的准备工作(敲黑板!划重点!血与泪的教训!)

1 内存卡的格式一定要是fat32 的!!!fat32!fat32!fat32!重要的话说三遍。内存卡买回来的时候,默认格式是exfat的,这个不行,不能用作系统卡,我费尽辛苦按照下面的操作了一波,发现用了新卡的树莓派无法启动。才想起是磁盘格式的问题。

  1. 怎么判断磁盘格式,内存卡用读卡器插上树莓派的时候,用sudo fdisk -l查看,可以看到格式,比如我最初的时候,看到的格式就是(NTFS/exfat/...),而且也不能直接挂载。特别是下面的Disk identifier: 0x00000000,全是0,这肯定不正常。
  2. 格式化,我把内存卡插电脑上,右键格式化,并没有fat32的选项,只有NTFS和EXFAT。最开始用的是常见的SDFormatter,失败(格式化了依然是exfat)。最后用的是 DiskGenius下载页面 格式化,除了类型选择fat32,其他的都默认就行了。

怎么做

原来搜到过很多教程,有自己动手制作的,也有使用dd命令的。当然我是倾向于使用dd的,毕竟几步操作就能完成。所以拿到内存卡第一件事就是百度出来了那篇文章。我就直接贴简书的文章了:树莓派dd,烧录新卡[转载] 这篇文章也是转载的,我遇到的问题远远不止这几个,下面会一一说出来。

复制系统流程

  1. 然后使用sudo fdisk -l 查看挂载的磁盘信息,可以看到自己的树莓派上的磁盘信息:

    磁盘信息

  2. 可以看到我的磁盘是挂载到/dev/mmcblk0的,因为我已经完成了操作了,系统就是在这个位置挂载的。正常情况下会是 /dev/sda或者sdb或者sdb1,以此类推。根据大小找就对了。

  3. 使用教程上学来的命令sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda。需要注意几个问题:1)bs=4M,M必须大写,否则会报错(dd invalid number 4m),网上的教程大部分是错的,我遇到了这个问题。2)if=/dev/mmcblk0是树莓派的系统分区,这个不需要改动。3)of=/dev/sda后面是你的内存卡的路径,究竟是哪一个需要根据刚刚查出来的结果填写。

  4. 耐心等待10+分钟(取决于你原来卡的大小,写入速度大概是12M/S)...

  5. 树莓派显示完成了。使用命令sudo shutdown now关机,然后拔出原来的系统卡,使用刚刚写入的卡插上去。系统啥的都和原来一样,除了大小。能SSH上去就证明写入成功了。但是事情还没完。

  6. 扩展新的系统的大小。在原来的系统上复制过来的新系统,大小依然只有原来的系统大小。所以必须要扩展。

扩展系统分区

这一步和百度到的其他的文章不一样,应该是这个系统配置工具升级了。

  1. 在树莓派上使用sudo raspi-config命令,呼出来如下的系统配置界面:

    raspi-config

  2. 按 ↓选择到 7 Advanced Options ,然后回车,界面如下:

    扩展分区

  3. 就是第一个了,直接回车,然后接下来还有几次回车,并且会问你,是否立即重启,那当然是立即重启了。重启之后,再使用df -h命令,查看分区就是新内存卡的磁盘大小了。看到这Avail 50G就令人兴奋,我要去把mysql装回来了~~~

    最终效果

推荐阅读更多精彩内容