dd 会导致数据损坏吗?

dd 会导致数据损坏吗?

我设法运行命令,例如dd if=/dev/block/mmcblk0对我的 Android 手机的内部存储进行完整备份,并将数据直接通过 USB 连接传递到 PC。

但我担心这可能会损坏数据。因为备份过程是在手机系统运行时进行的,包括/dev/block/mmcblk0系统和数据分区。如果手机系统在备份过程未完成时(当 dd 命令仍在运行时)进行磁盘修改,输出数据是否可能损坏?内部存储为 10GB,备份需要很长时间。

还有一个问题。如果我将块大小 (bs) 指定为与​​存储大小相同,是否可以避免此类数据损坏?

关于 bs 来自维基百科

使用大块需要更多的 RAM 并且会使错误恢复复杂化。

我不完全理解这句话,但我推断,如果我运行 dd 命令并指定 bs 的整个存储大小(大约 10GB),那么我的电脑必须至少有 10GB 的 RAM。

因此,如果无法确保使用 dd 同步数据复制,我认为我必须在恢复模式下并卸载后进行备份/dev/block/mmcblk0

答案1

如果手机系统在备份过程未完成时(dd 命令仍在运行时)进行磁盘修改,输出数据是否可能损坏?内部存储为 10GB,备份需要很长时间。

是的。

还有一个问题。如果我将块大小 (bs) 指定为与​​存储大小相同,是否可以避免此类数据损坏?

不,这不会使大量的读取变得原子化。

使用大块需要更多的 RAM 并且会使错误恢复复杂化。

我不完全理解这句话,但我推断,如果我运行 dd 命令并指定 bs 的整个存储大小(大约 10GB),那么我的电脑必须至少有 10GB 的 RAM。

正确的。

因此,如果无法确保使用 dd 同步数据复制,我认为我必须在恢复模式下进行备份并卸载 /dev/block/mmcblk0。

这是我的建议。

相关内容