![dd:设备上没有剩余空间](https://linux22.com/image/152080/dd%EF%BC%9A%E8%AE%BE%E5%A4%87%E4%B8%8A%E6%B2%A1%E6%9C%89%E5%89%A9%E4%BD%99%E7%A9%BA%E9%97%B4.png)
我正在新的微型 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
哪里),那么当使用相反的命令恢复时(假设驱动器按相同顺序列出)会抱怨没有更多空间。sdb
sdc
dd if=/dev/sdc of=/dev/sdb
dd
只是备份末尾剩余的未使用字节 ( sdc
) 无法复制到较小的sdb
卡,但您的原始存储已完全恢复。那么,为什么需要“修复”它呢?
除非您确实需要最大程度地降低风险,否则您可以直接用备份来物理替换原始卡,但不要忘记尽快再次备份。