USB关闭写保护

我有一个写保护的USB:

dmesg | tail

 [10098.126089] sd 7:0:0:0: [sdb] Write Protect is on [10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00 [10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present [10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through [10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present [10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through [10098.133335] sdb: sdb1 [10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present [10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through [10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk 

如何关闭写保护?

我试过的

  1. 检查它是否有硬件开关 – 没有
  2. 试图在Windows和Linux上格式化它(也通过终端)
  3. 试过fdisk | chmod
  4. 尝试用Ubuntu软件中心的几个工具解决这个问题
  5. 使用Google并且已经看过大约10,000次有关此问题的讨论,但它们从未解决过

附加信息

fsck -n /dev/sdb1

 fsck from util-linux 2.19.1 dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN There are differences between boot sector and its backup. Differences: (offset:original/backup) 65:01/00 Not automatically fixing this. Free cluster summary wrong (968250 vs. really 911911) Auto-correcting. Leaving file system unchanged. /dev/sdb1: 50 files, 93653/1005564 clusters 

fdisk -l

  Device boot. Start End Blocks Id System /dev/sdb1 32 8060927 4030448 b W95 FAT32 

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

 mkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1 

要关闭磁盘设备的写保护,我们使用低级系统实用程序hdparm,如下所示:

 sudo hdparm -r0 /dev/sdb 

我们假设/dev/sdb是我们正在处理的物理磁盘设备。 如果设备具有以只读方式挂载的分区,则应将“em”重新挂载为读写,以便将数据写入它们。

希望有所帮助。

在研究了你的问题之后,对于某些品牌的USB闪存驱动器(一些较旧的三星,一款金士顿型号)而言,这似乎是一个不太常见的问题,基本上只是因为没有任何已知原因而“废弃”。 人们试过打开它们并跳过两根引线(可能是从一个片状开关?)无济于事。 如果你仍然有这个驱动器,它仍在保修期内,我会退回并获得更换。

我讨厌把坏消息告诉你= \但是在这种情况下你看起来很不幸,因为我读到的一切都指向硬件故障。

编辑05/27/2016:我最近亲身经历了一个闪存驱动器问题。 在我的情况下,这是一款128英寸的Corsair Flash Voyager,它开始在我身上大幅减速。 虽然它没有显示出这里提到的症状,但偶尔也不会安装并显示为“硅电源”设备。 这是因为驱动器累积了大量坏扇区并进入诊断/编程模式。 由于这是我最受欢迎的答案之一,这也属于“失败的闪存驱动器”类别,我想我会把它包含在这里供参考。

使用fdisk -l找到驱动器,即:/ dev / sdc1

现在

 umount /dev/sdc1 

最后,重新格式化闪存驱动器

sudo mkfs -t vfat /dev/sdc1

我发现这很快捷。 在尝试格式化之前,请务必UNMOUNT驱动器。

Angel的答案很好,但实际的命令对我来说并不那么容易。 这是有用的:插入卡(我的是一个SD卡,上面有一个手动写保护开关,但是开关关闭,它可以在Windows机器上写入)。 Ubuntu自动将它安装在/ media / andrew / 6AB0-1FD91上,dmesg将分区显示为/ dev / sdb1。

卸载它,并使其可写

 sudo umount /dev/sdb1 sudo hdparm -r0 /dev/sdb 

创建一个新的挂载点并将其挂载(我的/ etc / passwd中的userID为1000)

 sudo mkdir /media/andrew/temp sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp 

它仍会抱怨它是只读的。 我不知道为什么我必须在安装之前和之后更改此标志,但这是它对我有用的唯一方式。 将其设置为可写,并在同一位置重新安装

 sudo hdparm -r0 /dev/sdb1 sudo mount -o remount,rw /dev/sdb1 

现在我可以作为普通用户写入磁盘。 如果它确实失败了,我会非常小心,但这些命令让我完成了我正在做的事情。

嗯,这有点令人失望。

我在这里和其他地方尝试了一切, 没有任

在朋友的Windows笔记本电脑上格式化它 – 现在工作正常。 FFS!

叹了闻……(现在想知道我是否可以在我的Mint桌面上的Win 7 VM中修复它?)。

插入记忆棒并开始gparted。 通过右上角的按钮选择它。 如果您正在检查记忆棒应该是显而易见的(尺寸是一个很好的线索)。 选择分区 – >卸载。

选择顶部的“设备”,然后选择“创建分区表”并采用默认值,即msdos。

现在您应该能够创建一个新分区并将其格式化为f32。 如果你不能,它可能会破产。

HTH