How to fix read only USB pen drive in Ubuntu
While copying some large file I mistakenly taken out USB pen drive before the copy get completed. Later I again attached the USB pen drive in Ubuntu system but found that the USB pen drive showing read only filesystem message. I was not able to copy, create and delete any file. To solve this issue I followed some steps which I am sharing in this article.
Table of Contents
Method Of Fixing Read Only USB Pen Drive In Ubuntu
In this section, we will follow the steps to fix the read only USB Pen Drive.
Disclaimer
- Some of you might be carrying the important data in USB / Pen Drive. In this method, we will format the USB drive. So due to this , the data will be erased and non recoverable.
- This solution works most of the time but in case there is Hardware issue in your USB/Pen drive then this solution won’t work. You should buy new USB/ Pen drive instead.
Find Out The Mounted Path Of USB Pen Drive
Step 1: Attach USB pen drive in system’s USB port. Automatically the Ubuntu will mount the USB pen drive and show icon on Desktop or Menu bar.
Open the terminal and become super user by running below given command
sudo su -
Step 2: First we have to find out in which directory the USB pen drive has been automatically mounted.For this run the df -Th
command.
In given below output you can see,in my system the USB pen drive is mounted in /media/linux/C38C-099C ,partition is /dev/sdd1 and filesystem is vfat.
Note: When you run df -Th
command in your system,the USB pen drive may mount in different directory and the partition might also be different.Hence the output value which you will get, use the same values in further steps.
root@tuxworld:~# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda5 ext4 28G 25G 1.3G 96% / udev devtmpfs 2.0G 4.0K 2.0G 1% /dev tmpfs tmpfs 796M 1.1M 795M 1% /run none tmpfs 5.0M 8.0K 5.0M 1% /run/lock none tmpfs 2.0G 528K 2.0G 1% /run/shm none tmpfs 100M 104K 100M 1% /run/user cgroup tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda7 ext4 9.2G 8.2G 539M 94% /partition7 /dev/sda8 ext3 46G 38G 6.2G 86% /partition8 /dev/sda9 ext3 74G 67G 3.1G 96% /partition9 /dev/sda21 ext4 14G 4.9G 8.3G 37% /partition10 /dev/sdd1 vfat 15G 12G 3.6G 77% /media/linux/C38C-099C
Unmount USB Pen Drive
Step 2: Now unmount the directory in which the USB pen drive is automatically mounted . (As you can see mounted directory path in above ‘Step 1’)
Note: Replace the/media/linux/C38C-099C with the mounted USB pen drive directory path which is showing output in your system after running df -Th
command.
umount /media/linux/C38C-099C
Check And Repair
Step 3: As we know the USB pen drive got /dev/sdd1 partition
and filesystem is vfat(see in Step 1). Now we will run dosfsck command to check and repair the filesystem
Note: The dosfsck
command check and repair MS-DOS filesystems.Because the filesystem of USB pen drive is vfat hence we are using this command
dosfsck -a /dev/sdd1
Re-Attach USB Pen Drive
Step 4: After the dosfsck command get completed.Remove the USB pen drive from system and then re-attach back to system.Now your USB pen drive should working and it should not have read only filesystem.
Note** After mounting the USB pen drive you may see a new file with extension .REC which was created because of dosfsck command.
Reboot The System
Step 5 Reboot the system after completing all the steps. (This step we have added after receiving lots of suggestion in comments section from our readers around the world. Thank you for providing feedback and sure it will help many people.)
Thank you very much. It worked! God bless you.
still getting the error after using the command
dosfsck -a /dev/sdb1
as fsck.fat 4.1 (2017-01-24)
open: Read-only file system
Did u found any solution on above? am too facing same issue
are you sure umount command succeeded?
I used it so far and it works always 🙂
Regards
Sharad
Very good solution and explanation. Worked just fine for my device. Thanks!
Thanks a lot. USB drive started working after restarting my system. God bless you!
Thanks Champ! It Worked. 🙂
i cant view the contents of the flash drive now. it shows up in the terminal using ls though, but not in files. how do i fix that?
Hi Krish,
Restart the laptop and reconnect the USB flash again. Hope it may work.
Regards
Sharad
This worked for me.
Thank You very much.
root@hrsky:~# dosfsck -a /dev/sdb1
fsck.fat 4.1 (2017-01-24)
open: Read-only file system
I haven’t rebooted, yet, because now the terminal says it’s got something running. The drive is gone when I do the df -Th, and when I removed it and put it back, it’s not recognized, at all! Now I have 2 drives that aren’t recognized and 1 that is still read-only. I’m glad I didn’t do that one, as well. Will take the drive to the laptop and try it. I’m running Mint 18.2, I think. Thanks for your help.
This didnt work for me for some reasons. I dont know why..
david@david-laptop ~ $ sudo su
[sudo] password for david:
david-laptop david # df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 774M 18M 756M 3% /run
/dev/sda5 ext4 35G 22G 12G 65% /
tmpfs tmpfs 3.8G 112M 3.7G 3% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/loop2 squashfs 87M 87M 0 100% /snap/core/4407
/dev/loop0 squashfs 87M 87M 0 100% /snap/core/4486
/dev/loop3 squashfs 82M 82M 0 100% /snap/core/4206
/dev/loop1 squashfs 39M 39M 0 100% /snap/telegram-sergiusens/68
/dev/sda12 ext4 149G 58G 84G 41% /home
/dev/sda1 vfat 256M 30M 227M 12% /boot/efi
cgmfs tmpfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs tmpfs 774M 44K 774M 1% /run/user/1000
/dev/sda4 fuseblk 147G 35G 112G 24% /media/david/Education
/dev/sda15 fuseblk 194G 164G 31G 85% /media/david/Entertainment
/dev/sda13 fuseblk 99G 74G 25G 76% /media/david/Conference_Works
/dev/sdb1 vfat 15G 468M 15G 4% /media/david/A616-CC78
david-laptop david # umount /media/david/A616-CC78
david-laptop david # sudo dosfsck -a /dev/sdb1
fsck.fat 3.0.28 (2015-05-16)
open: Read-only file system
david-laptop david #
Are you sure switching to root succeeded? when I switch to root, the prompt changes to ‘root@systemname#” if not, just try sudo before the commands and not use sudo su, sometimes this helps. also, be sure to check if the device really unmounted