dd:设备上没有剩余空间

dd:设备上没有剩余空间

我正在新的微型 SD 卡上恢复 Raspberry Pi 的备份。
原始卡是 16Gb,目标卡也是 16Gb。然而,在转移过程中dd抱怨没有剩余空间。
现在,我知道每张卡片的实际尺寸都不同,但我该如何解决这个问题呢?是否可以“砍掉”几个字节并使磁盘映像适合卡中?

答案1

是的,您可以使用 .txt 从原始磁盘映像文件中“删除”字节truncate

truncate -s 15G image.raw

显然,这会影响磁盘映像内的数据。您可能希望缩小所包含的文件系统,以便它们不会一路被截断。gparted是一个具有漂亮 UI 的工具来实现这一点。

gparted image.raw

只需缩小并移动分区,直到磁盘末尾有足够的“未分配空间”。如果您的磁盘分区是在 MBR 中定义的,那么此时您就完成了。如果使用GPT,则需要多留几个字节,截断后重新生成辅助GPT。

如何调整磁盘映像设备的大小?是有一定关系的。

答案2

是的,“相同大小”的存储介质(在您的情况下为 16GB)不一定具有完全相同的字节数。根据品牌的不同,可能会有一些细微的差异。

如果您将整个卡存储克隆到具有更大容量的卡(在您的情况下多了几个字节),使用如下命令:(您的源和备份在dd if=/dev/sdb of=/dev/sdc哪里),那么当使用相反的命令恢复时(假设驱动器按相同顺序列出)会抱怨没有更多空间。sdbsdcdd if=/dev/sdc of=/dev/sdbdd

只是备份末尾剩余的未使用字节 ( sdc) 无法复制到较小的sdb卡,但您的原始存储已完全恢复。那么,为什么需要“修复”它呢?

除非您确实需要最大程度地降低风险,否则您可以直接用备份来物理替换原始卡,但不要忘记尽快再次备份。

相关内容