只读的USB闪存驱动器,我无法对其进行任何操作。

一些我不知道怎么搞的,不小心把我的USB闪存盘变成了只读文件系统。我尝试了很多方法来删除文件,包括基本的(rm -f myfile)和尝试允许写入(sudo chmod +w myfile),然后再删除,但是似乎都没有起作用。你有什么办法吗?我在USB闪存盘上没有任何需要的东西,但我也不想扔掉一个本来完好无损的设备。
我该怎么做才能让它正常工作?我是不是完全走错了路?

如何在Ubuntu中修复只读USB闪存驱动器 - Suragch
以下链接以及其中包含更多详细信息的链接可能会对您有所帮助,或者至少能解释问题所在:https://askubuntu.com/questions/402236/i-cannt-copy-any-file-to-my-pendrive/939815#939815 - sudodus
5个回答

rmchmod这样的命令是在挂载的文件系统上执行的。所以如果文件系统是只读的,这些命令就不起作用。你需要做的是将文件系统挂载为可写。
一些USB闪存驱动器上有一个开关,可以将它们设置为只读模式。可能这就是原因。也有可能只是由于没有正确卸载而导致损坏或损坏。
在进行任何操作之前,请先将文件从闪存驱动器上复制出来。
如果不是硬件开关的问题,请拔下并重新插入USB闪存驱动器,并执行以下操作:
dmesg | grep -i panic

这将显示任何的恐慌信息。如果您看到与USB存储设备有关的许多此类信息,并且它是一个FAT分区,您可以使用dosfsck来修复它。

您可以通过以下方法找出它是如何被挂载的

mount

使用

dosfsck -a /dev/sd{xn}

修复MS-DOS分区表,或者使用sudo mkfs.vfat /dev/sd{xn}格式化磁盘。其中{xn}是通过mount命令获得的字母和数字。
顺便说一下,你也可以使用gparted来格式化它。

1我不得不使用 sudo mkfs.vfat(我差点忘了尝试),但现在似乎可以工作了。谢谢。 - Jonathon
1嗯...如果USB闪存驱动器没有格式化为DOS/FAT,这个方法就不适用了,但我的驱动器是格式化为ext4的...我该如何使其可写入挂载? - Joshua Robison
1@Rinzwind,这个方法对我没用。使用sudo mkfs.vfat /dev/sdc1命令的输出为mkfs.fat 3.0.28 (2015-05-16) mkfs.vfat: unable to open /dev/sdc1: Read-only file system。我该怎么办? - KVS
作为root用户,我得到的信息是:fsck.fat 3.0.28 (2015-05-16) open: 只读文件系统 此外,gparted也无能为力。 - Scorpion

我遇到了这个问题。故障是分区损坏。检查一下你的USB闪存驱动器上的分区。如果你尝试在Windows和Ubuntu上进行格式化,可能会导致分区损坏。使用"gparted"工具。你应该只能看到一个活动分区。如果还有一个"未分配"的分区,那么USB闪存驱动器将无法工作。如果是这样的话,请删除所有分区,并创建一个仅占用整个闪存驱动器容量的活动分区。然后拔掉再重新插入,你应该可以正常读写了。

这个答案在我特定的情况下比其他答案更有道理。四周摆放着多余的分区看起来像我所遇到的症状。 - Gustavo Carreno

是的,如果文件系统是只读的,那么对文件设置模式将没有任何效果。您可以在/etc/fstab中查看文件系统是否以只读方式挂载。但是,如果您没有任何内容,您也可以在gparted或palimpsest中为其创建一个新的文件系统(后者在Ubuntu中默认安装,并称为磁盘管理器或其他名称)。

如我这里所提到的,我曾经遇到类似的问题。
ntfs-3g已经安装了,chmod命令也没有帮助,也没有看到任何重要的错误代码。Gparted也不起作用。事实上,我发现没有一个USB设备能够工作。$dosfsk命令也没有帮助。
我所做的就是将Ubuntu 16.04机器重新启动,并插入U盘,现在USB设备可以正常工作了。

检查一下你是否安装了ntfs-3g软件包。这个方法对我有用;-) (在安装完ntfs-3g后,记得拔掉并重新插入你的USB驱动器)