我在 Windows 主机上的虚拟机 (VMWare) 中运行 Ubuntu 18.04.1。我正在尝试使用 dd 将整个 SD 卡归零。这是我用来向软件组发布嵌入式 Linux 的过程的一部分(当空的 FS 数据全为 0 时,SD 卡映像压缩得更好)。
我正在使用的命令是:sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
它成功完成;我收到了传输记录的打印输出,以及一条消息说设备上没有剩余空间。如果我然后sudo cat /dev/sdc | hexdump
查看磁盘内容,磁盘仍然充满数据并且不是零(而且不仅仅是在最后)。
我是否必须指定 SD 卡的字节数才能使其始终如一地工作?每次我将 SD 卡归零时,我都没有这个问题。
完整的控制台输出:
gen-ccm-root@ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
15929966592 bytes (16 GB, 15 GiB) copied, 1274 s, 12.5 MB/s
dd: error writing '/dev/sdc': No space left on device
3799+0 records in
3798+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1274.19 s, 12.5 MB/s
gen-ccm-root@ubuntu:~$ sudo cat /dev/sdc | hexdump
[sudo] password for gen-ccm-root:
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0101000 2004 0000 6004 0000 0000 0000 0000 0000
0101010 0000 0000 0000 0000 0000 0000 0000 0000
*
0101400 2005 0000 6005 0000 0000 0000 0000 0000
...
正如评论中所说,sdcard 带有坏块。
我提出的解决方案是运行:
注意:这是破坏性的数据,例如
dd if=/dev/zero
.用户收到如下信息:
显示sdcard已损坏。
更换了sdcard,问题就解决了。
利用
并查看结果,例如:
您的输出可能有所不同!
现在你应该使用: