我有几百个“假”闪存驱动器;您会在在线商店中看到的那种,具有错误/可疑的大小,例如“1TB”或“1ZB”......
我怎么知道它们是“假的”?它们基本上会在某个时间点后停止文件传输,此时它们基本上会失败,并且发生传输的操作系统通常会显示错误。
现在我确实设法检查了此类闪存驱动器的实际大小,并将它们设置为实际大小,不久前(几年前,所以我不记得了精确的程序),但我这样做了:
- 填充闪存驱动器直到出现错误,并在出现错误时记下/打印所述数据的实际/确切大小(因为它会指示真实的所述闪存驱动器的大小)。
- 使用 .“格式化”闪存驱动器为其实际大小
dd
。
我已经部分了解如何完成第一部分。问题出现在第二部分,我不完全确定它是如何完成的,尽管我确实记得当时,当我这样做时,我曾经dd
写过一个我创建的空图像文件,具有精确的实际大小闪存驱动器,并dd
与其一起使用。
有些人可能会认为/争论,“它是无用的”或“努力大于结果”,如果我只有其中一两个,这可能是正确的,但考虑到我总是可以找到这些闪存驱动器的用途,即使如果不实用(由于数量),并不意味着它没有用。
考虑到我设法做到了一次,虽然我忘记了它,但也有可能......(其他人可能设法做类似的事情,尽管我在Linux上没有找到任何这样的例子)
我没有关于这些的任何数据,而且我也不关心它们是否破裂(考虑到我拥有的数量),但我仍然更喜欢将它们设置为实际大小,如前所述。
我基本上想使用 、 和其他一些 Posix 实用程序来完成所有这些bash
工作dd
。
答案1
您可以使用该工具f3为了这。它是一个 linux 端口H2testw(德语)。
F3 包含在大多数主要发行版中,例如 debian、ubuntu 和 fedora
编辑:如果不更改固件,您就无法修复棒/卡/任何东西的大小,这不是一项简单的任务。但 f3 提供了命令 f3fix,它可以创建一个具有实际大小的分区,因此您不会意外“过度提交”数据。
答案2
- 使用
dd
(badblocks
在读写模式下使用测试图案可能是更好的选择)擦除它们并记下实际大小。 - 使用 fdisk/gdisk/sfdisk/cfdisk/whatever 创建正确用途的单个分区。其中大多数都可以实现简单的自动化——可能是最简单的一个
sfdisk /dev/device < partition_table_file
。