How to Fix USB Sticks Mounted as Read-Only in Linux

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.

List USB Device Name
List USB Device Name

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:

List USB Device Details
List USB Device Details

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.

Check USB Mounted as Read-Only
Check USB Mounted as Read-Only

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.

💡 Want to Level Up Your Linux Skills?

Check out Pro.Tecmint.com for ad-free reading, exclusive guides, downloadable resources, and certification prep (RHCSA, RHCE, LFCS) - all with lifetime access.

Ravi Saive
I'm Ravi Saive, an award-winning entrepreneur and founder of several successful 5-figure online businesses, including TecMint.com, GeeksMint.com, UbuntuMint.com, and the premium learning hub Pro.Tecmint.com.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

3 Comments

Leave a Reply
  1. Also worth checking is – Open Disks > Additional Partitition Options > Edit Mount Options then toggle User Session Defaults. This can give access to the device.

    Reply
  2. What if the USB drive is hardware locked? For example, during data transmission, due to an electrical fluctuation, the USB might switch to read-only mode to protect the data. In that case, we wouldn’t be able to change it, right?

    Reply
    • @Lufy,

      Great point – yes, if the USB drive has a hardware-level lock or goes into a protective read-only mode due to a power surge or hardware issue, software fixes alone won’t help. In those cases, the drive’s controller is essentially blocking any write operations to prevent data loss or corruption.

      If it’s a physical switch (some USBs have this), make sure it’s set to the “write” position. But if it’s a firmware-level lock triggered by a fault, you’re looking at either:

      Using the manufacturer’s recovery tool (if available)
      Reflashing the USB controller (advanced and risky)
      Or, worst case – replacing the drive if it’s permanently locked

      So yes, you’re absolutely right – the guide applies mostly to software-level issues. Hardware-protected modes are a different beast.

      Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.