验证存储设备的实际大小

验证存储设备的实际大小

几周前,我购买了一个来源不明的“2Tb”拇指驱动器,目的是在重建系统时将其用作中间存储(Debian 的三个版本)。

任何人都可以提出一种有效的方法来验证其实际大小,即它实际上具有“2Tb”闪存,而不是在存储空间中重复的单个“500Mb”设备?

我想强调的是,我完全意识到制造商长期以来在声明容量时所采取的自由,并且我的“2Tb”驱动器可能具有 1.75Tib 之类的最大实际容量。

它最初是使用未分区的 exFAT 进行格式化的,虽然我通常的测试程序会向其中写入超过 1Tb 的测试数据,但在进入读取通道之前,它总是会在某个随机点出现故障,读取通道将验证块号是否确实保留。虽然这可能表明驱动器的微控制器不稳定,但问题也可能出在 Linux 上相对较新的 exFAT 支持上。

我可以使用 gparted 进行分区并重新格式化为 ext4 或 ext2,而不会出现错误。

尝试使用 -cc 选项手动运行 mke2fs 进行 ar/w 块测试,每 1% 的驱动器大约需要 80 小时。此外,我还没有看到明确验证它具有两个单独的通道,这需要明确地验证大小。

我还没有尝试运行我自己的测试程序,我相信该程序可以在格式化为 ext2 的设备上的较小媒体(10 GB 规模)上运行。

如果我的测试程序应用于块设备而不是文件,我可以通过添加 --sparse 选项来提高效率,该选项仅在例如 4K 块中写入块号。如果目标是测试文件,这可能没有帮助,因为(a)操作系统可能不会为稀疏文件中的未写入区域分配空间,并且(b)涉及的翻译层太多,几乎不可能触及闪存设备块边界。

任何建议,将不胜感激。

答案1

我发现了一个名为f3打击闪存欺诈)似乎可以做到这一点。

甚至似乎还有一个 QT GUI。

吉图布

文档

引用自述文件:

使用 f3probe 进行快速容量测试

f3probe 是最快的驱动器测试,适用于大型磁盘,因为它只写入测试驱动器所需的内容。它直接在(未挂载的)块设备上运行,需要以特权用户身份运行:

./f3probe --destructive --time-ops /dev/sdX

警告

这将破坏磁盘上以前存储的所有数据!

相关内容