无法打开/dev/sdb以读写方式(只读文件系统)

正如标题所述,我无法将其格式化,因为它显示为只读。我尝试了几次搜索和解决方案。甚至我尝试使用GParted来看看是否有任何运气。不幸的是,下面是我得到的结果。
GParted 0.11.0 --enable-libparted-dmraid

Libparted 2.3

Delete /dev/sdb1 (fat32, 14.91 GiB) from /dev/sdb  00:00:00    ( ERROR )
        
calibrate /dev/sdb1  00:00:00    ( SUCCESS )
        
path: /dev/sdb1
start: 32
end: 31,266,815
size: 31,266,784 (14.91 GiB)
delete partition  00:00:00    ( ERROR )
libparted messages    ( INFO )
        
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
Can't write to /dev/sdb, because it is opened read-only.
Unable to open /dev/sdb read-write (Read-only file system). /dev/sdb has been opened read-only.
的输出:
[10061.878073] usb 2-1.3: new high-speed USB device number 8 using ehci_hcd
[10061.972140] scsi9 : usb-storage 2-1.3:1.0
[10062.969922] scsi 9:0:0:0: Direct-Access     SanDisk  Cruzer Blade     1.20 PQ: 0 ANSI: 5
[10062.971746] sd 9:0:0:0: Attached scsi generic sg2 type 0
[10062.972799] sd 9:0:0:0: [sdb] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
[10062.976439] sd 9:0:0:0: [sdb] Write Protect is on
[10062.976453] sd 9:0:0:0: [sdb] Mode Sense: 43 00 80 00
[10062.977353] sd 9:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[10062.999026]  sdb: sdb1
[10063.003367] sd 9:0:0:0: [sdb] Attached SCSI removable disk

fsck

的输出:
sudo fsck -n /dev/sdb
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
fsck.ext2: Device or resource busy while trying to open /dev/sdb
Filesystem mounted or opened exclusively by another program?

sudo fdisk -l /dev/sdb的输出:

Disk /dev/sdb1: 16.0 GB, 16008593408 bytes
64 heads, 32 sectors/track, 15266 cylinders, total 31266784 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6f20736b

This doesn't look like a partition table
Probably you selected the wrong device.

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1   ?   778135908  1919645538   570754815+  72  Unknown
/dev/sdb1p2   ?   168689522  2104717761   968014120   65  Novell Netware 386
/dev/sdb1p3   ?  1869881465  3805909656   968014096   79  Unknown
/dev/sdb1p4   ?  2885681152  2885736650       27749+   d  Unknown

Partition table entries are not in disk order

这个问题还没有解决,我已经尝试了很多方法。你有什么办法可以解决吗?

存储设备是什么?如果是USB闪存驱动器或SD卡,可能会有一个写保护开关... - Yong Jie Wong
这是一个USB闪存盘(SanDisk),没有开关。 - AzkerM
可能是USB关闭写保护的重复问题,因为[sdb]的写保护已打开。 - falconer
没有一个有效果.. - AzkerM
有没有东西在上面?如果没有,请使用gparted创建一个新的GPT分区表(不是msdos,默认选项)。我刚刚遇到了这个问题,这样做解决了它。 - user314033
3个回答

首先尝试使用命令sudo hdparm -r0 /dev/sdb(方法来自另一个askubuntu答案)。然后尝试重新挂载分区为可读写模式。如果这些步骤不起作用,那么很可能你的U盘已经无法修复了。
由于内核显示整个驱动器都被写保护,你需要处理驱动器级别的保护机制。 hdparm可以做到这一点。如果它无法解决问题,那么很可能你的U盘是设计上的写保护或者已经损坏。
也许在外壳下面有一个硬件开关,如果你拆开它,可能会找到。如果之前它是可写的,那么可能是这个开关被切换了;如果从未可写,那么可能一直处于打开状态。
此外,在谷歌上搜索你的设备会得到很多与同样问题相关的结果,甚至包括Windows系统。这是来自Sandisk论坛的信息
对于SanDisk USB闪存驱动器,答案已经被发布了很多次。如果是新的,请将其退回到购买的地方。如果在保修期内,请将其退回给SanDisk。这两个选项都将为您提供一个新的USB闪存驱动器。没有其他一致的选择。
此外,从SanDisk论坛中
这是一个官方答案,如果您联系客户服务: “我知道您在访问Cruzer闪存驱动器时遇到了写保护错误。闪存驱动器检测到潜在故障,并已变为写保护状态,以防止数据丢失。没有修复此问题的方法。您需要备份数据并更换闪存驱动器。 我们的开发团队正在与操作系统开发人员合作寻找解决此问题的方法。 请注意,只有少数用户遇到了写保护问题,这些客户在互联网上发布帖子以寻找解决方案。”
因此,可能没有办法解决它。

我猜这就是USB驱动器的结局了。非常感谢您花费宝贵的时间来寻找并发布了一个详细的答案。既然没有其他办法,只能购买一个新的了。 - AzkerM
除了这些问题的答案之外,我不记得我还尝试过什么其他方法。但是我遇到的情况与这个答案非常相似。没有其他办法可以修复,只能替换它。 - AzkerM
SanDisk和一些无名的品牌似乎都有你提到的保护功能。我在我的微型SD卡上检测到一个有故障的扇区。 - Sandburg
【已解决】我在U盘挂载的时候不小心拔掉了(忘记了)。然后我重新插上并重新挂载。之后,当我尝试挂载时出现了这个错误。这样修复了只读问题。 - s1n7ax
我遇到了一个问题,我的USB驱动器出了故障,现在我觉得它因为反复格式化而自杀了。我现在要给它安息了... - Kaushal Bhatol
我简直不敢相信,今天早上我花了2个多小时试图解决这个问题,结果原来是我的SanDisk Ultra本身就存在一个无法修复的问题! - user3330273

我的问题一直是SD卡侧面的小锁开关被移动到“锁定”位置。是的,我指的是SD卡侧面的物理开关。
看这张图片:

SD card labeled lock states


1哇,我很高兴你在我花更多时间使用分区工具之前提到了这个问题。谢谢你,解决了我的问题。 - JHS
1感谢@WebFreak001添加这张图片! - geneorama
谢谢。我对这个问题快要发疯了。 - Krishna

如果你还没有尝试过这个方法,请先卸载你想要格式化的分区,然后再继续进行后续操作。
要检查挂载的权限,您可以使用以下命令:
ls -ld /path/to/target

如果是权限问题,可以通过使用chmod更改权限或递归地更改所有权来解决。下面是我展示的方法:
sudo chown <username>:<groupname> -R /path/to/target

现在,如果需要,您也可以使用chmod设置权限:
find /path/to/target -type f -execdir chmod 666 -Rv {} +

(这将为目标中的所有文件提供所有者、组和全局的读写权限。)
find /path/to/target -type d -execdir chmod 777 -Rv {} +

(这将为目标中的所有目录提供所有者、组和全局的RWX权限。)
(如果所有者是root,请使用sudo chmod命令)

分区已卸载,/path/to/target 是根目录,拥有权限的是 root 用户。同时,我正在以 root 身份执行此操作。 - AzkerM
...并且root有写入权限吗?如果没有,请为root设置读写权限,或者将所有权更改为普通用户,然后进行格式化操作... - rusty
是的,root用户确实具有写入权限,我尝试了所有可能的方法和工具来解决这个问题,但是没有成功。 - AzkerM
我的32GB闪迪(SanDisk)USB,安装了一个损坏的Fedora系统,有相同的问题,现在已经退役了。对于这样的事情没有修复方法,研究解决这种混乱所花费的时间不值得...购买一个新的,问题就解决了。 - devasia2112