![为什么在尝试使用 dd 命令“擦除”我的 micro-sd 卡时收到错误消息?](https://linux22.com/image/160781/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20dd%20%E5%91%BD%E4%BB%A4%E2%80%9C%E6%93%A6%E9%99%A4%E2%80%9D%E6%88%91%E7%9A%84%20micro-sd%20%E5%8D%A1%E6%97%B6%E6%94%B6%E5%88%B0%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%EF%BC%9F%20.png)
目的:擦除整个 SD 卡,而不仅仅是“删除”
命令:(已卸载)
"sudo dd if=/dev/urandom of=/dev/sda bs=8192"
dd: error writing '/dev/sda': No space left on device
118139+0 records in
118138+0 records out
sd上有文件。首先,我打开了SD卡所在的终端,并运行了命令,然后在不同的位置打开了一个单独的终端,并运行了命令;相同的结果。
更新:我注意到SD不允许我删除上面的分区。我使用“sudo fdisk /dev/sda”。 “尚未定义分区”。
更新2:我重新启动计算机,然后能够删除该分区。我目前正在尝试再次擦拭。
答案1
在这种情况下,该错误是正常的,并且仅意味着它已完成。/dev/urandom
是无限的,而你的 microSD 卡不是。您收到该错误是因为dd
想要向其中写入更多数据,但空间不足(因为整个数据已被擦除)。如果您想要比这更多的保证,您可以使用该shred
命令,该命令为此设计得更好并且不会导致错误。
答案2
如果您确实使用过/dev/sdx
,那么您几乎肯定刚刚在/dev
分区上创建了一个大文件。在这种情况下,“空间不足”错误将与分区有关,而不是与您想要的设备有关,并且您需要删除意外的设备文件 /dev/sdx
。
验证它是一个带有find /dev/sdx -type f
.如果它是一个文件,您将得到输出,但否则没有输出(即它可能是一个设备)。
如果您没有真正使用/dev/sdx
而是使用了正确的设备节点,请编辑您的问题以显示这一点,并告诉我们您如何识别正确的设备。 (我会删除这个答案。)
最后,确保在尝试覆盖底层设备之前已卸载该设备。否则,您可能会发现缓存的数据块被写回设备,导致出现类似文件系统的情况。
答案3
终端在“媒体”中打开,由于某种原因,即使关闭所有终端并从文件管理器打开一个终端后,它仍然在“媒体”中打开。我重新启动了计算机,问题就解决了。然后我就可以擦卡了。谢谢您的帮助。