我有一张 SD 卡,工作正常,并且是 ubuntu 23.04,并且 dd 不能完全镜像磁盘映像。例子:
预期的:
$ dd if=/dev/zero of=/dev/sdb
$ strings /dev/sdb
$
实际的:
$ dd if=/dev/zero of=/dev/sdb
$ strings /dev/sdb
#random text, a lot
我如何确保我的数据(不是 /dev/zero )被正确写入?
我有一张 SD 卡,工作正常,并且是 ubuntu 23.04,并且 dd 不能完全镜像磁盘映像。例子:
预期的:
$ dd if=/dev/zero of=/dev/sdb
$ strings /dev/sdb
$
实际的:
$ dd if=/dev/zero of=/dev/sdb
$ strings /dev/sdb
#random text, a lot
我如何确保我的数据(不是 /dev/zero )被正确写入?
显然它不能“正常”工作,否则您将能够写入所有扇区。由于目标驱动器似乎会毫无错误地删除写入命令,因此它不可信,应更换。
不幸的是,这是廉价 SD 卡和 USB 闪存驱动器的常见问题。不仅这些设备中使用的 NAND 质量非常低,而且固件的质量也非常低,因为您可能会期望固件在无法写入任何特定 LBA 地址时会抛出错误。
在您的情况下,由于没有错误,目标驱动器接受了写入,无法写入并让它静静地通过。它要么根本没有检测到问题(这很糟糕),要么检测到问题但没有通知(这也很糟糕)。
尝试这个:
conv=fsync 的作用:
(来源)
如果复制块级设备,请使用 验证它们是否相同
cmp
。