![在 USB 驱动器上,文件在成功写入后消失](https://linux22.com/image/1545529/%E5%9C%A8%20USB%20%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%EF%BC%8C%E6%96%87%E4%BB%B6%E5%9C%A8%E6%88%90%E5%8A%9F%E5%86%99%E5%85%A5%E5%90%8E%E6%B6%88%E5%A4%B1.png)
我公司刚刚收到 4,000 个 4GB 闪存盘。当我们尝试访问写入文件夹的视频或 PDF 文件时,文件夹显示为空。
例如,在每个驱动器上,我们都会加载一个 PDF 和一个包含有关我们公司的视频的文件夹。复制所有文件后(这表示成功),该文件夹不知为何是空的。我无法通过显示隐藏文件或通过命令提示符或其他任何方式看到它们。
我们尝试过使用 exFat、NTFS 和 FAT32 格式化它们。我们尝试过在计算机上手动加载文件,或者从复制器上的其他闪存驱动器克隆文件。我们尝试过不将视频放在文件夹中,但那没什么用。
看起来小文件有时会保留下来,但大文件不会保留下来。大文件会消失。
Windows 7的
答案1
我使用名为 h2test2w.exe 的程序测试了闪存驱动器。闪存驱动器在系统中被错误地标记为 4GB,但实际上它只有 215MB 容量。我指的不是像外面印刷的那样被错误标记——我指的是系统属性、其他驱动器分析器,随便什么都可以。
显然,每个程序使用的驱动器的显示大小不是基于芯片的实际容量,而是基于 USB 闪存驱动器上的一些“标题”信息,这些信息是有人用工厂工具手动设置的(见如何创建 USB 分区以便无人可以删除它——我的答案中的最后一张图片显示了“容量设置”选项卡)。
只要我们在驱动器上放置的数据不超过 215MB,它就可以正常工作,但如果超过这个数字,它似乎就会对驱动器的第一位进行循环覆盖。像这样,如果只有 4 位:
bit 1 value: 0
bit 2 value: 0
bit 3 value: 0
bit 4 value: 0
现在我将向其中写入一个 6 位文件:000011
bit 1 value: 0
bit 2 value: 0
bit 3 value: 0
bit 4 value: 0
bit 1 value: 1
bit 2 value: 1
这让我想到:
bit 1 value: 1
bit 2 value: 1
bit 3 value: 0
bit 4 value: 0
因此,如果“标头”正确,它就不会写入驱动器,因为驱动器太小。相反,现在前两位已被覆盖,文件已损坏或根本不存在。
换句话说,我们被骗了。