我有一张 SanDisk Extreme SD 卡,里面装有运行在 RaspberryPI 上的家庭服务器。我想使用 dd 将这个系统移动到另一张 4GB SD 卡上。但不幸的是,当我通过 dd 制作映像时,它的大小与整个 SanDisk(16GB)一样大,尽管其中只有大约 13.5 个分区。服务器 SD 由 2 个分区组成,一个小的 50MB,另一个 3 GB。我预计 dd 制作的映像的大小是两个分区之和。有没有办法制作一个只包含实际使用的磁盘空间的映像?
答案1
如果 SD 卡是(例如)sdb,则不要要求 dd 读取 sdb,您可以通过指定(例如)sdb1 或 sdb2 来要求它仅复制分区。您必须先使用大小相等的分区对目标设备进行分区,然后将这些分区指定为目标。
Unix/GNU-Linux 系统有多种用于复制数据的工具
- 日
- 太平洋保险协会
- 倾倒
- 柏油
阅读关于它们各自的一些内容是值得的(例如手册页,但我建议通过谷歌搜索概述)
此外,dd
还有一个计数选项,因此您可以告诉它只复制前 4GB。
答案2
是的,实际上非常简单:你可以使用档案存档器正如其主页上明确指出的那样:“...只要有足够的空间来存储数据,FSArchiver 就可以将档案提取到比原始档案更小的分区中...“