USB Read-Only Filesystem

I'm pretty confident in Linux now, but this USB stick is complaining of a read only file system, but I wrote to it in Windows 7 a minute ago, and there was no issues. I've tried all the suggestions from other posts, and all the things I can think of.

Here is the dmesg stating write-protection is off:

[ 5563.009330] scsi 11:0:0:0: Direct-Access     SanDisk  Cruzer Edge          1.26 PQ: 0 ANSI: 5
[ 5563.009676] sd 11:0:0:0: Attached scsi generic sg5 type 0
[ 5563.011878] sd 11:0:0:0: [sdi] 31266816 512-byte logical blocks: (16.0     GB/14.9 GiB)
[ 5563.013754] sd 11:0:0:0: [sdi] Write Protect is off
[ 5563.013759] sd 11:0:0:0: [sdi] Mode Sense: 43 00 00 00
[ 5563.014970] sd 11:0:0:0: [sdi] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

Here is the problem:

adam@Home:~$ sudo mount /dev/sdi ~/usb
mount: /dev/sdi is write-protected, mounting read-only

I have also formatted the usb with zero's with DD, and tried again:

adam@Home:~$ sudo dd if=/dev/zero of=/dev/sdi bs=1k count=2048
2048+0 records in
2048+0 records out
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.426446 s, 4.9 MB/s

adam@Home:~$ sudo parted /dev/sdi
GNU Parted 3.2
Using /dev/sdi
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Error: /dev/sdi: unrecognised disk label
Model: SanDisk Cruzer Edge (scsi)
Disk /dev/sdi: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel msdos
(parted) mkpart primary
File system type?  [ext2]? fat32
Start? 1MiB
End? 100%
(parted) p
Model: SanDisk Cruzer Edge (scsi)
Disk /dev/sdi: 16.0GB
    Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  16.0GB  16.0GB  primary  fat32        lba

(parted) q
Information: You may need to update /etc/fstab.

adam@Home:~$ lsblk
NAME                MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda                   8:0    0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdb                   8:16   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdc                   8:32   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sdd                   8:48   0 698.7G  0 disk
└─md0                 9:0    0   2.7T  0 linear /mnt/raiddrives
sde                   8:64   1   7.6G  0 disk
├─sde1                8:65   1   487M  0 part   /boot
├─sde2                8:66   1     1K  0 part
└─sde5                8:69   1   7.1G  0 part
  ├─Home--vg-root   252:0    0   3.2G  0 lvm    /
  └─Home--vg-swap_1 252:1    0     4G  0 lvm    [SWAP]
sdi                   8:128  1  14.9G  0 disk
└─sdi1                8:129  1  14.9G  0 part

adam@Home:~$ sudo mkfs -t vfat /dev/sdi1
mkfs.fat 3.0.28 (2015-05-16)

adam@Home:~$ sudo mount /dev/sdi ~/usb
mount: wrong fs type, bad option, bad superblock on /dev/sdi,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

There is no button the USB to turn write protection on or off.


I wanted to extend john smiths answer. I had made two USB sticks bootable using Ubuntus "Start media creator". It made the sticks unusable afterwards, because they were write protected and I could not format them in Ubuntu or Windows. I tried fdisk, gparted. No dice.
What helped was inserting the stick (make sure this is the only USB drive inserted), finding out where it is mounted:

df -Th

That will show you a list of devices/partitions and their mount paths/points: udev devtmpfs 7,8G 0 7,8G 0% /dev ... /dev/sdb1 vfat 7,5G 4,0K 7,5G 1% /media/<USER_NAME>/<STICK_NAME_OR_ID>

Find your USB stick and remember its partition device path (here: /dev/sdb1) and mount point (here: /media/USER_NAME/STICK_NAME_OR_ID). Then unmount it:

sudo umount /media/USER_NAME/STICK_NAME_OR_ID

Now recreate the file system (FAT32 in this case):

sudo mkfs.msdos -F 32 /dev/sdb1

Wait a short time and unplug the stick. Wait again and plug it in. It should be writable now...


I fixed it. The problem was that you have to use the command below to make a Fat32 FS, instead of sudo mkfs -t vfat /dev/sdi1.

sudo mkfs.msdos -F 32 /dev/sdi1

None of this worked for me. The drive would format (fat 32) but Unetbootin would always see it as "write protected".

The only thing that worked was formatting the USB drive using my Mac for fat 32. After that, everything worked great.

Imagine - having to use a Mac to format a drive in a Win/Dos format for a Linux utility. Sheesh.