If you’ve ever plugged in a USB stick on a Linux machine and found that you can’t copy, delete, or modify files and that it’s mounted as read-only, you’re definitely not alone, as this is a common frustration for Linux users, whether you’re using Ubuntu, Fedora, Arch, or any other distro.
What makes it tricky is that this problem can happen for several different reasons:
- The USB drive might have a corrupted file system, especially if it was removed without being safely ejected.
- Sometimes, Linux will mount a drive as read-only to prevent further damage when it detects file system errors.
- Other times, it’s something as simple as a physical write-protection switch on the USB stick.
- Or the issue might come from the USB stick being removed improperly on Windows, leaving it in a “dirty” state that Linux doesn’t want to mess with.
The good news? Most of the time, you don’t need to replace the USB stick. With the right tools and commands, you can usually fix the issue and get full read-write access back.
This guide will walk you through the entire troubleshooting process, so you can identify the cause and fix it with confidence.
Step 1: Identify the USB Device
When you plug a USB stick into your Linux machine, the system assigns it a device name like /dev/sdb
or /dev/sdc
, depending on how many drives are already connected.
It’s important to know exactly which device your USB stick is before you try to fix it. Messing with the wrong one could affect your internal hard drive or other storage.
Here’s how to correctly identify your USB stick using the lsblk command.
lsblk
This stands for “list block devices“, it shows all connected storage devices in a tree format.

You can also use fdisk command to get a detailed breakdown:
sudo fdisk -l
This shows all partitions and device types. Look for the one that says something like:

Step 2: Check Mount Options
When you plug in a USB stick, Linux mounts it, which means it attaches the USB’s file system to a folder (like /media/username/usb
) so you can access files on it.
But sometimes, Linux mounts it read-only (you can read files but not write, delete, or modify anything), which is usually to protect your data if the system thinks the USB might be damaged.
To check if a USB device is mounted as read-only, use:
mount | grep /dev/sd
This filters the list of mounted devices to only show your USB and similar devices. The important part here is ro
, which means read-only. If everything is working normally, you’d see rw
instead, which stands for read-write.

If you see ro
(read-only) in the mount options, then you need to unmount the USB device to fix it.
sudo umount /dev/sdc1
Step 3: Run File System Check with fsck
The fsck command is your go-to tool for checking and repairing problems in a Linux file system – similar to Windows’ “chkdsk“.
When a USB stick is mounted as read-only, it’s often because Linux detects file system corruption and automatically limits write access to prevent further damage.
Running fsck helps detect and fix these errors.
sudo fsck -n /dev/sdc1
Once fsck completes successfully, try mounting the drive manually.
sudo mount /dev/sdc1 /mnt
If no errors pop up and you can create/delete files, it’s back to normal.
Step 4: Remount as Read-Write (If Needed)
If your USB stick is still stuck in read-only mode even after running fsck, there’s a quick trick that might help: remount it with read-write permissions.
sudo mount -o remount,rw /dev/sdc1
Note: If your device is mounted under a specific folder (like /media/yourusername/USB
), make sure that’s the one being remounted.
Step 5: Check dmesg for Clues
If the previous steps haven’t worked, it’s time to dig a little deeper with the help of the dmesg command, which will show system messages, including kernel-level warnings and errors that occurred when the USB was plugged in.
dmesg | tail -n 50
Pay special attention to lines like:
[ 1234.56789] EXT4-fs error (device sdc1): ... [ 1234.56790] Remounting filesystem read-only
These types of messages mean the Linux kernel detected a critical issue and, to protect your data, automatically remounted the USB in read-only mode. This is usually caused by file system corruption, bad sectors, or physical damage on the USB stick.
Step 6: Reformat (If Necessary)
If everything else fails, and you still can’t write to the USB, reformatting might be your last resort, but be warned – this will erase all data on the USB stick. Make sure you’ve backed up anything important (if possible).
Before formatting, you must unmount it:
sudo umount /dev/sdc1
You can now format the USB with the file system of your choice:
sudo mkfs.vfat /dev/sdc1 #For FAT32 sudo mkfs.ntfs /dev/sdc1 #For NTFS sudo mkfs.ext4 /dev/sdc1 #For ext4
Once formatted, mount the USB again to verify it works.
sudo mount /dev/sdb1 /mnt
Try copying or creating a file in /mnt
to confirm the write functionality is restored.
Conclusion
Fixing a read-only USB stick in Linux usually involves checking for file system errors, remounting with the correct permissions, or in extreme cases, reformatting the drive. By following the steps above, you can diagnose the root cause and restore full access.
If none of these work, it’s time to consider the possibility of hardware failure, and back up important data before things get worse.