我使用 dd 在我的磁盘/dev/sda 上创建了一个镜像文件,fdisk 表示它的大小为 500107862016 字节。生成的图像文件大小为 500108886016 字节,正好大了 1024000 字节。
- 为什么镜像文件比我的源盘大1MB?是否与我在 dd 命令中指定 bs=1M 有关?
- 当我将镜像文件恢复到另一个相同的磁盘上时,出现“dd:写入‘/dev/sda’时出错:设备上没有剩余空间”错误。这是一个问题吗?我的新磁盘会损坏吗?
最佳答案
conv=noerror
使 dd(1)
在读取错误后继续,这不是您想要的。此外,conv=sync
会用零填充不完整的 block (主要是最后一个 block )以填充完整的 block ,因此向最后一个 block 附加零可能是导致文件大于实际磁盘大小的原因。
您不需要使用您使用过的任何conv
选项。不会进行任何转换,并且 dd(1)
将写入不完整的最后一个 block ,以防图像没有完整的 block 大小(就是这种情况)
只需重试您的命令:
dd if=/dev/sda of=yourfile.img
然后
dd if=yourfile.img of=/dev/sdb
如果您计划使用更大的缓冲区大小(不需要,因为您使用的是 block 设备,并且内核不会为读取 block 设备强加 block 大小),只需使用扇区大小的倍数,即整个磁盘大小的除数(类似于一个完整磁道——荒谬,因为当今的磁盘磁道完全符合逻辑,与实际磁盘几何形状没有任何关系)
关于linux - DD 图像大于源图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259640/