![USB 无法正常工作?或者其他问题?](https://linux22.com/image/1397156/USB%20%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%EF%BC%9F%E6%88%96%E8%80%85%E5%85%B6%E4%BB%96%E9%97%AE%E9%A2%98%EF%BC%9F.png)
我最近买了一个 32GB 的 USB。看起来它来自一个被拒收的库存:我的 USB 在 Windows 中检测正常,甚至可以写入和读取文件和文件夹。
但是,我无法将格式从 FAT32 更改为 NTFS(或任何其他文件系统),也无法将分区表更改为 GPT,也无法更改 FAT32 分区的大小。好吧,如果我只使用 Windows,那就没问题了。
问题是,它根本不会被 Mac 检测到。(rdisk2 没有出现)并且,在 Ubuntu 中,只有 /dev/sdb 出现在设备中,但 /dev/sdb1(即 FAT32 分区)没有出现。
然后我尝试在 Ubuntu 中对 /dev/sdb 进行十六进制读取(因为它至少被检测到了)。并且文件为 0 字节(如 GHex 中所示,具有 root 权限)。然后我还尝试对 /dev/sdb 进行 dd,结果出现了非常奇怪的结果: https://drive.google.com/file/d/0BzNsvDx_ae6bWU94T0RhVjdxOG8/edit?usp=sharing
这是附加的 dd 输出,缩短到 1MB。我在看起来像 /dev/sdb 的内容中(因为它是“dd”)(虽然实际上不是)收到“系统磁盘无效。磁盘 I/O 错误。更换磁盘,然后按任意键。”。
我被难住了。该驱动器在 Windows 中运行良好(好吧,只要我只使用 FAT32.. 我无法更改分区),我可以读取和写入文件。
这里发生了什么?换一种问法:既然损坏了,为什么它还能在 Windows 中写入?店主通过这种方式销售拒收商品赚了很多钱(并在顾客面前证明它可以工作,这样他们就不能过后再告诉他们它不能工作了)
答案1
我不确定您使用的是哪个品牌的 USB,但我的 64GB Patriot Supersonic Rage XT 也出现了类似的问题,让我费尽心思花了好几个小时。
直到我意识到 Patriot 使用了一些自定义格式来提高如此高容量下的读写速度。这些信息让我找到了这个解决方案:Supersonic Rage 写保护低级修复工具
不确定这是否有助解决您的特定问题,但如果您使用的是 Supersonic Rage XT,那么这对我有用。
答案2
看来我得到线索了……
我尝试使用以下方法查找 USB 驱动器的容量
$ df -hT /dev/sdb
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 2.0G 4.0K 2.0G 1% /dev
而且显示容量只有2GB!~
所以这家商店卖的是假 USB(或者至少控制器报告的容量是假的)。现在他们不接受已打开的包装 :-(
所以我现在必须研究如何让它报告其真实容量……