为什么用 dd 创建的磁盘映像比原始磁盘大?

Wey*_*van 1 dd disk-image

我最近使用备份了一个磁盘dd,当我尝试dd将图像恢复到磁盘时,我意识到不知何故图像文件的大小比创建的原始磁盘大

  • 原始磁盘 7.4 GB

  • 磁盘映像 7.8 GB

我使用的命令是:

dd if=/dev/sdg of=/mnt/data/backup.img; sync
Run Code Online (Sandbox Code Playgroud)

我无法挂载它,也无法将其解压缩到目录中。

更有趣的是,即使是 PhotoRec 也无法从磁盘映像中恢复所有数据。在获得 16 GB 闪存驱动器并将dd磁盘映像放入其中后,一切都可以“恢复”。

原始闪存驱动器包含一个格式化为 vfat 的 8 GB 分区,但它未满。由于我在使用前没有格式化,所以使用了出厂默认的块大小。

为什么磁盘映像比原始磁盘大约 400MB?

Lin*_*eak 6

根据我发现的最简单的转换器,7.4 GiB 大约等于 7.9 GB。

由于您尚未编写任何特定命令来输出实际大小,因此可能就是这样。

笔记:

  • GiB = GibiByte = 1024 的倍数。

  • GB =千兆字节= 1000 的倍数。

  • 某些应用程序仍可能会混淆这些单位。


来自评论的片段:

7927234560 bite (7,9 GB, 7,4 GiB) copied
Run Code Online (Sandbox Code Playgroud)

如您所见,7.4 GiB 已被dd.


至于你的主张:

我无法挂载它,也无法将其解压缩到目录中。

嗯,这是因为你没有dd分区,我的意思是/dev/sdg1,而是整个磁盘。


至于你的主张:

如果这是唯一的原因,我可以轻松地将它添加回 USB 驱动器。不幸的是,我不能,因为驱动器在过程快结束时用完了空间。

目前想到的唯一原因是,您可能错误地这样做了:

dd if=/mnt/data/backup.img of=/dev/sdg1
Run Code Online (Sandbox Code Playgroud)

代替:

dd if=/mnt/data/backup.img of=/dev/sdg
Run Code Online (Sandbox Code Playgroud)