我的 SD 卡可能已损坏。我想用零填充它,即 100%。那么,假设设备是,我应该输入什么命令/dev/sdc
?
答案1
这就是dd
可以/dev/zero
挽救局面的地方:
- 打开终端(如果尚未打开)
- 使用
dd
:dd if=/dev/zero of=/dev/sdc bs=4096
这将会以多种方式将其归零。
这是如何运作的?
dd
是一种非常灵活的文件转换和复制方法。文档包含可用操作数的完整列表,但我将只关注上面命令中的项目,一次一个元素。
命令 /操作数 |
目的 |
---|---|
dd |
命令 |
if |
“在文件中” 要转换和复制的源数据 |
of |
“输出文件” 转换数据的目标位置 |
bs |
“块大小” 每次读取/写入的字节数 |
读取/dev/zero
将导致无休止的零序列。如果零是不必要的或不理想的,人们可能会采取许多替代方案,例如/dev/random
和/dev/urandom
它们是随机数生成器。
该/dev/sdc
位置是存储设备。如果最后一个字母后面有一个数字,例如/dev/sdc1
,则它是该存储设备上的一个不同分区。通过写入/dev/sdc
而不是 ,/dev/sdc1
您dd
实际上是在告诉从存储介质中清除其超级块和所有介质描述符,从而有效地消除设备上可能存在的任何分区。
因此,把所有这些放在一起,上面的命令告诉计算机执行以下操作:
使用dd
...
- 从中读取无尽的零
/dev/zero
- 直接写入位于的设备
/dev/sdc
- 每次写入 4096 字节的块
当然,没有“撤销”功能。一旦此过程开始,它将一直进行,直到您使用Ctrl+取消操作C,或者目标设备空间不足。
题外话
我通常在第一次购买所有新存储设备时都运行此命令。它允许我完全清除驱动器上可能已经存在的所有内容,同时测试写入速度并查找坏块。我曾两次通过此操作发现 USB 棒存在问题,在向卖家出示了检查结果和dd
后续磁盘检查后,我能够毫无困难地将它们换成正常工作的 USB 棒。这是一个非常方便的实用程序,但请注意,在删除分区之前,它永远不会询问“您确定吗?”,并且无法撤消。如果您犯了错误,您需要准备好良好的最新备份。
无论如何,你应该始终准备好最近的备份