将 SD 卡克隆到更大的 SD 卡上

将 SD 卡克隆到更大的 SD 卡上

我使用的是 Ubuntu 12.04。我有一张旧的 4GB SD 卡,刚买了一张新的 16GB SD 卡。我想将旧的 4GB SD 卡上的所有内容复制到新的 16GB SD 卡上。我担心通常的复制粘贴技巧会遗漏某些内容,所以我想将旧的 4GB SD 卡克隆到 16GB SD 卡上。我dd在 shell 中使用了该命令,按照此链接

这种方法有效,但有一个小问题。新 SD 卡现在显示为 4GB。后来我发现这是因为 16GB SD 卡上的主分区现在已缩小到 4GB。我已经解决了这个问题,我想我明白了。但是,我现在的问题是,如何将旧的 4GB SD 卡克隆到新的 16GB SD 卡上,而不会使 16GB SD 卡上的主分区缩小到 4GB?

答案1

您将始终将主分区缩小到复制分区的大小,除非您复制内容使用 dd 来管理您的分区。

如果您没有两个 SD 卡插槽,我假设您做了类似的事情sudo dd if=/dev/sda/ of=/dev/sdb bs=4k或使用图像文件作为临时存储。使用此命令,您将分区以及分区表复制到新的 SD 卡。

尝试这个(假设您的分区名为/dev/sda1):

  • 插入 4 GB SD 卡
  • sudo dd if=/dev/sda1 of=~/sdcard.bin
  • 放入 16 GB 的 SD 卡,并确保主分区跨越整个 16 GB
  • sudo dd if=~/sdcard.bin of=/dev/sda1

这应该只会复制您的分区的内容。


您也可以简单地调整新 SD 卡上的分区大小。如果您想要了解这方面的一些信息,您必须告诉我们您的 SD 卡上使用哪种文件系统。

答案2

即使您将分区大小设置为 16GB,文件系统元数据也是为 4GB 分区创建的,并且不会自动增长。

修复此问题的更简单方法是启动gparted并扩展分区以使用整个磁盘 - 它将负责修复分区和文件系统。

如果旧 SD 卡上没有分区表,请在新卡上转储sda并创建sda116GB 的分区,然后使用 dd 将映像写入该分区。您仍然需要gparted像 @Earendil 描述的那样进行检查。

答案3

同样的事情也发生在了这里。实际上,我使用了sda1不是 sda最简单的方法是使用 Gparted:

  • 右键单击该分区。
  • 选择check
  • 使用 Gparted 运行检查(绿色对勾)。
  • Gparted 尝试纠正分区错误。

就我而言,确实如此。SDHC 卡现在可以正确读取 16GB(之前 GParted 将克隆分区显示为分区内的已用空间)。当你掌握了 Ubuntu 和这些 Ubuntu 工具后,你会发现它们非常强大。希望这对你有所帮助。

答案4

只是想补充一点,我能够直接从一张 SD 卡到另一张 SD 卡完成这项工作,同时通过 USB 安装,使用以下代码:

sudo dd if=/dev/sdc of=/dev/sdb

我遇到了这样的问题:新的 SD 卡(最初为 64gb)现在读取的是克隆 SD 卡的大小(8gb) - 而 Gparted 检查似乎无法解决这个问题。

我确信我会解决这个问题 - 只是想将我的结果和技术直接使用一张卡发布到另一张卡上。

相关内容