卡/USB闪存:大量使用后如何修剪/丢弃/重置?

THX*_*THX 6 usb memory-card trim usb-flash-drive

我想知道,是否可以在 Linux (Fedora 24) 上“重置”USB 驱动器或存储卡的控制器以将其视为“未使用”?

背景:我已经覆盖了 /dev/urandom 中的 USB 驱动器。即,我假设所有块都已被写入,因为(据我所知)大多数 USB 驱动器和存储卡控制器不保留任何备用块。驱动器(如何检查存储控制器是否支持 ATA 修剪或者 USB 控制器是否将 ATA 修剪传递到设备?)不支持修剪 - fstrim 抛出错误并且 hdparm 没有看到修剪支持,即,

hdparm -I /dev/sdX | grep -i TRIM
Run Code Online (Sandbox Code Playgroud)

通常是否可以将 USB 闪存存储上的所有块标记为可擦除并对所有单元运行垃圾收集?或者,如果可能的话,是否仅限于某些控制器(USB 以及存储控制器)?

跟进

以下 SD 卡被擦除后,从卡中读取什么值?所有位均清除还是所有位均置位?至少 SD 卡应该支持CMD38,它作为快速格式化会重置块。

然而,到目前为止,我发现只有一个官方的 Win/Mac 软件可以将此命令发送到设备https://www.sdcard.org/downloads/formatter_4/

据推测(未尝试)这也取决于 USB 控制器来传递命令,并且可能仅适用于 SD 卡,但不一定适用于 USB 驱动器?

到目前为止,我还没有找到一个Linux程序可以轻松地将这个CMD38命令发送到设备。

小智 5

您想要的命令是blkdiscard。它通过修剪来完全擦除整个分区或块设备。但是,它仅适用于 SD 卡,不适用于 USB 拇指驱动器,因为我认为后者不支持修剪。


归档时间:

查看次数:

12814 次

最近记录:

1 年,8 月 前