用dd备份分区安全吗?

Is it safe to backup a partition with dd?

我正在备份 2GB SD 卡(及其分区 table,等等),其中包含 500 MB(1.5 GB 未使用)

dd if=/dev/sdX | gzip > my_image.gz

它将备份 500 MB 的有用数据,但也可能:

1) 那么用dd备份SD卡安全吗? (考虑到一些以前删除的个人数据可能会保存在备份中!)

2)有没有办法"zero"把SD卡中所有未使用的space在dding之前"zero"?

是的。使用 dd 读取设备会创建一个图像文件,您可以 dd 直接返回。它与您准备刻录到 CD 上的 iso 非常相似。

这样做的唯一缺点是您得到的是磁盘映像,而不是结构化文件系统。所以你会有一些浪费的 space(dd 图像包含空的 space - 这应该被压缩掉,但它也会包括任何被删除的随机垃圾)并且你如果您想从中提取单个文件,还需要手动挂载它。根据您使用的OS,这可能更容易或更难。

您可能需要考虑 ufsdumptar 作为备选方案。

是的,它会起作用,是的,正如你所说,如果你有任何隐藏的旧数据,它也会存储在你的图像中。因此,如果您担心无法存储这些文件,只需使用 tar.

如果你想将未使用的归零 space 你可以使用 zerofree,检查这个线程: https://unix.stackexchange.com/questions/44234/clear-unused-space-with-zeros-ext3-ext4 (假设您使用的是 ext3 或 ext4)。

老实说,不知道如何处理脂肪(如果它是 sd,你可能会使用它),也许唯一的方法是 tar 一切,将其归零,然后未tar...

要恢复该备份,您应该将它恢复到至少与那个一样大的 SD(如果它更大,它将浪费一些 space,因为分区只有 2Gb,但它仍然有效)。

正如我在评论中所说,当您需要保留所有内容(例如引导扇区和分区配置)时,使用 dd 非常有用。如果您没有这些,并且想将文件保存在那里,请使用 good ol' tar.