如何修复只读 USB 驱动器?

如何修复只读 USB 驱动器?

我有只读 USB 驱动器,但无法修复它。我读了一些关于它的文章并尝试修复,但失败了。

我卸载了驱动器并用来dosfsck检查和修复 MS-DOS 文件系统,因为它是FAT文件系统并运行:

dosfsck -a /dev/sdb1

它给出了输出:

fsck.fat 4.1 (2017-01-24) 打开:只读文件系统

那么我该如何处理它呢?我可以修复它吗?还是应该把它扔进垃圾桶?

答案1

如果 USB 曾经可写入,但现在不再可写入,则在我看来这表明了 3 件事:

  1. 设备上的硬件开关已被切换。

    如果是这种情况,简单的解决方法就是找到硬件开关(它们可以真的细微),然后切换该选项。

  2. 发生了“不干净”的卸载,例如在操作系统完成向 USB 写入数据之前将其从插槽中拔出

    为了延长设备的使用寿命并提高性能,大多数存储介质(包括 USB 驱动器)的写入操作都带有缓冲。实际上,这意味着除非您告诉操作系统弹出/卸载 USB 驱动器,否则无法保证所有数据都已写入。此外,大多数文件系统都有标志来指示它们何时已安装和卸载:在将驱动器从插槽中拔出之前,务必告诉操作系统您要移除驱动器(“弹出”、“卸载”、“关闭”)。

    因此,如果简单地检查和修复文件系统不起作用,那么您可以尝试将数据临时复制到其他地方,重新格式化 USB 驱动器,然后再复制数据这种笨拙的方法。通过重新格式化,您将完全覆盖那里的内容,因此操作系统/文件系统将不会记得 USB 驱动器/文件系统在格式化之前是只读的。

    修复文件系统的一个细节。首先确保它没有被挂载。你的命令集暗示它已被挂载。所以:

    sudo umount /dev/sdb1

    sudo dosfsck -a /dev/sdb1

  3. USB 磁盘本身已经不行了,而嵌入式固件正在保护您免于丢失任何数据。

    如果 USB 使用基于闪存的存储,则可能您已向设备写入了足够多的次数,以至于现在无法再写入。向基于闪存的存储写入是一个破坏性过程,并且每个扇区只能承受一定次数的重写。许多驱动器会“隐藏”这一事实,通过内部拥有更大的存储空间(例如 16G 的总写入空间),但仅向操作系统显示较小的容量(例如 2G)。随着每个扇区开始磨损,固件会自动将数据移动到新的未使用扇区。但是,在写入次数过多之后,将不再有可用的存储空间,并且智能固件实现将锁定驱动器以防止数据丢失。此时,您唯一的选择就是将数据复制到新的闪存驱动器。

答案2

简单的解决方案:将闪存驱动器插入运行 Windows 的计算机。Windows 将检测到错误并指示您扫描和修复它。然后驱动器将以通常的方式在 Ubuntu 上运行。

答案3

也许直到最近,拇指驱动器才有了某种方式可以将自身变为只读状态几天,就像您在其中刻录某些东西一样 - 也许只是为了进一步延长其作为闪存的使用寿命。

该单元根本没有被破坏,您可能希望尽早将只读标志设置为零......

hdparm --security-help请从您的设备查看。

您可能想要运行其中一些(如果不是全部的话);尝试找出正确的顺序。

这里的想法是:

hdparm --security-mode m --user-master m --security-freeze device;
hdparm --security-mode m --user-master m --security-set-pass null device;
hdparm --security-mode m --user-master m --security-unlock null device;
hdparm --security-mode m --user-master m --security-disable null device;
hdparm --security-mode m --user-master m --security-erase null device;
hdparm --security-mode m --user-master m --security-erase-enhanced null device;

完全禁用设备的只读功能。一个月前,我在巴西的 USB 2.0 64G 多激光 (tm) 笔式驱动器上成功使用了此功能。

答案4

Ubuntu 实用程序“DISKS”非常强大。它有时可以修复此故障。我用它成功过几次。插入 USB 驱动器。打开 DISKS。左侧会列出它可以看到的驱动器。在主窗口中,它会显示每个驱动器上的分区。从左侧的列表中选择 USB 驱动器。它会在主窗口中打开并将其显示为一个分区(除非您更改了这一点)。窗口下方有 2 个图标,一个可用于安装和卸载驱动器,另一个(齿轮)可用于各种维护操作。在此之下有 4 项有关驱动器的信息 - 大小、设备、​​UUID、内容。这些将帮助您确保选择了正确的驱动器。单击齿轮,在子菜单上查看大约 7 个项目以找到“修复文件系统”。您会收到警告,但请继续。如果 DISKS 可以修复驱动器,它可能会在驱动器上创建许多 FSCK 文件。完成后,它将列出它创建的 FSCK 文件。您必须打开控制台并使用 sudo rm -rf FSCK* 删除这些文件。完成此操作以整理驱动器后,您就大功告成了。DISK 将删除使文件系统为只读的标志。弹出 USB 驱动器,然后将其从插槽中取出。如果幸运的话,它现在应该可以正常运行。

相关内容