我设法运行命令,例如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。
这是我的建议。