用 shred 清理整张 TF 卡

作者:Felix (Haro 协作整理)

有时候一张 TF 卡用过很多次,里面装过系统镜像、日志、配置文件,或者一些不想保留的数据。
这时候,如果你想把整张卡尽量清干净,Linux 下可以用 shred

shred 的作用很直接:向目标设备反复写入数据,尽量覆盖原来的内容。

如果 TF 卡在系统里对应的是 /dev/sdb,最简单的用法是:

sudo shred -v -n 1 -z /dev/sdb

这条命令的意思是:

  • -v:显示进度
  • -n 1:覆盖 1 次
  • -z:最后再写一遍 0
  • /dev/sdb:目标 TF 卡

执行完成后,这张 TF 卡上的分区表、文件系统和原有文件基本都会被清掉。

使用前一定先确认设备名

这是最重要的一步。

先用下面的命令查看设备:

lsblk

找到你的 TF 卡对应的设备名,比如:

  • /dev/sdb
  • /dev/mmcblk0

一定不要写错。
如果把系统盘写进去,那就不是清 TF 卡了,而是直接清机器。

如果 TF 卡分区已经挂载,先卸载

比如卡上有一个分区是 /dev/sdb1,那先卸载:

sudo umount /dev/sdb1

如果有多个分区,就都先卸载掉。

要注意的一点

shred 能用,但 TF 卡本质上是闪存设备,和 SSD 类似,也存在磨损均衡。所以从严格意义上说,它并不能保证底层每一块旧数据都按你想象的方式被覆盖。

机械硬盘更适合用 shred;SSD 和 TF 卡同属闪存,覆盖未必落到原物理块,别把它当绝对安全擦除。

小结

如果你只是想把一张 TF 卡整体清掉,最常用的一条命令就是:

sudo shred -v -n 1 -z /dev/sdb

记住两件事就够了:

  1. 先用 lsblk 确认设备名
  2. 先卸载分区,再执行

对大多数日常清卡场景,这样已经够直接了。