Linux DD图像大于源

Linux DD图像大于源,linux,backup,cloning,dd,Linux,Backup,Cloning,Dd,我在磁盘/dev/sda上使用dd创建了一个映像文件,fdisk说它的大小是500107862016字节。生成的图像文件为500108886016字节,比原来大1024000字节 为什么映像文件比源磁盘大1MB?我在dd命令中指定了bs=1M,这与此有关吗 当我将映像文件恢复到另一个相同的磁盘上时,会出现“dd:error writing'/dev/sda':设备上没有剩余空间”错误。这是个问题吗?我的新磁盘会损坏吗 conv=noerror使dd(1)在读取错误后继续,这不是您想要的。另外,c

我在磁盘/dev/sda上使用dd创建了一个映像文件,fdisk说它的大小是500107862016字节。生成的图像文件为500108886016字节,比原来大1024000字节

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

  • conv=noerror
    使
    dd(1)
    在读取错误后继续,这不是您想要的。另外,
    conv=sync
    用零填充不完整的块(主要是最后一个块)以填充完整的块,因此,在最后一个块中添加零可能会使文件大于实际磁盘大小

    您不需要使用所使用的任何
    conv
    选项。不进行任何转换,
    dd(1)
    将在图像没有完整块大小的情况下写入不完整的最后一个块(这种情况下)

    只需使用以下命令重试您的命令:

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

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

    如果您计划使用更大的缓冲区大小(不需要,因为您使用的是块设备,内核没有为读取块设备设置块大小),只需使用扇区大小的倍数,即整个磁盘大小的除数(有点像一个完整的磁道——荒谬,因为今天的磁盘磁道完全是逻辑的,与实际磁盘几何结构没有任何关系)

    这是一个有趣的问题,但并不是真正的主题。您能给我们提供准确的命令行吗?例如,指定
    conv=sync
    ,将填充短输入记录,给出一个大小为块大小整数倍的输出文件。500108886016是1024*1024的整数倍;500107862016不是。我做了:dd if=/dev/sda of=imagefile.iso bs=1M conv=noerror,sync为什么对块设备使用
    bs
    参数?缓冲缓存处理磁盘的所有缓冲,不需要大于正常扇区(512字节)的缓冲区大小。还有,为什么
    conv=noerror,sync
    你不需要任何参数就可以将磁盘映像复制到文件中,只要
    dd if=/dev/sda of=imagefile.iso
    就可以了。顺便问一下,你的dd命令的输出是什么?这应该会有帮助,而不是让我们去修改。你能帮我创建一个.img文件(在哪个ubuntu操作系统中)我已经恢复到磁盘,但没有启动ubuntu?你知道吗?