USB turn write protection off

I have a USB which is write protected:

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

How can I turn the write protection off?

What I've tried

  1. Checked if it has a hardware switch - no
  2. Tried to format it on windows and on Linux (via terminal too)
  3. Tried fdisk | chmod
  4. Tried to fix this with several tools from Ubuntu software center
  5. Used Google and have seen about 10,000 discussions about this problem but they were never solved

Additional information

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

To turn off disk device`s write protect, we use the low level system utility hdparm like this:

sudo hdparm -r0 /dev/sdb

where we asume that /dev/sdb is the Physical disk device we're working on. If the device has partitions that are mounted as read-only, you should re-mount 'em as read-write in order to write data to them.

Hope that helps.


After researching your question it appears that this is a not-too-uncommon problem with certain brands of USB flash drives (some older Samsung, a Kingston model) that would essentially just "crap out" for no known reason. People had tried opening them and jumping two leads (maybe from a flaky switch?) to no avail. If you still have this drive and it's still in warranty I'd return it and get a replacement.

I hate to break the bad news to you =\ but it appears you're out of luck in this situation as everything I've read points to hardware failure.

Edit 05/27/2016: I experienced an issue personally with a flash drive flaking out on me recently. In my case, this was a Corsair Flash Voyager 128GB that started slowing down pretty drastically on me. While it didn't show the symptoms noted here, it occasionally would not mount and showed up as a "Silicon Power" device. This was a result of the drive having accrued a large amount of bad sectors and dropping into diagnostic/programming mode. Since this is one of my more popular answers and this also falls into the category of "failing flash drives," I figured I'd include it here for reference.

Update 2: Regarding that Corsair Flash Voyager, I sent mine in for an RMA, only to have my second one fail on me in the same fashion. The problem actually turned out to be mechanical. The sliding mechanism seems to put a small amount of pressure on the PCB. Ordinarily, this wouldn't have caused an issue in the normal life span of the device. But for this particular model, it seems to have had weak solder joints that the pressure from the sliding action exacerbated -- leading to oxidation in the cracked joint and eventual failure. Rather than doing yet another RMA, I took matters into my own hands. I opened the case, shaved some of the plastic casing away to give the PCB some wiggle room and then reflowed the NAND chip to repair the broken solder joints. It's working great to this day!


using fdisk -l locate the drive, ie: /dev/sdc1

now

umount /dev/sdc1

Finally, reformat the flash-drive

sudo mkfs -t vfat /dev/sdc1

I found this quick and easy. Be sure to UNMOUNT the drive before trying to format.