2016-05-16 89 views
-1

我在我的磁盘/ dev/sda上使用dd创建了一个映像文件,fdisk表示它的大小为500107862016字节。生成的图像文件是500108886016个字节,正好是1024000个字节。DD图片大于来源

  1. 为什么图像文件比我的源磁盘大1MB?是否有什么事与我在我的dd命令中指定bs = 1M有关?
  2. 当我将映像文件还原到另一个相同的磁盘上时,出现“dd:错误写入'/ dev/sda':设备上没有剩余空间”错误。这是一个问题吗?我的新磁盘会损坏吗?
+2

有趣的问题,但不是真的在这里的话题。 http://unix.stackexchange.com可能是最好的选择 –

+2

你能给我们确切的命令行吗?例如,指定'conv = sync'将填充短输入记录,给出一个输出文件,其大小是块大小的整数倍。 500108886016是1024 * 1024的舍入倍数; 500107862016不是。 –

+0

我做了:dd if =/dev/sda of = imagefile.iso bs = 1M conv = noerror,sync – waffle

回答

0

conv=noerror使dd(1)继续阅读错误后,这不是你想要的。另外conv=sync填充不完整的块(主要是最后一个块)用零填充一个完整的块,所以可能这个附加到最后一个块的零是什么使您的文件大于实际的磁盘大小。

您不需要使用任何您使用的conv选项。没有转换将被制成,并且dd(1)会写不完整的最末块图像的情况下,没有一个完整的块大小(这就是这种情况)

只是重试你的命令:

dd if=/dev/sda of=yourfile.img 

然后

dd if=yourfile.img of=/dev/sdb 

如果你打算使用一些更大的缓冲区大小(不是必需的,因为你使用的是块设备和内核不征收读块设备的块大小),只要用的多扇区大小是整个磁盘的约数ize(类似于一个完整的轨道---荒谬,因为今天的磁盘轨道完全符合逻辑,与实际的磁盘几何形状没有任何关系)

+0

你能帮我创建.img文件(在其中的Ubuntu操作系统),我已经恢复到磁盘,但不启动Ubuntu的?对此有任何想法? – Nullpointer