ben.mcfadden
Lurker
After some searching, I wasn't able to find anyone who described quite exactly my problem, and no one had a solution. So, after days of fighting this, I finally fixed it, and decided to post my solution.
HTC Droid Incredible running OEM 2.2 on Verizon
Problem:
My Internal Phone Storage was getting mounted as "read-only" and I couldn't write to it.
Symptoms:
I had my phone connected via USB as a Mass Storage Device to a windows machine and was transferring a folder called "BensPictures" that contained approximately 400 megs of photos to the root of the Internal Storage. About 50% of the way through, windows made the device disconnect sound, and alerted me that the USB storage device was no longer available, and that data had been lost in the transfer. I've seen the error before, but never when actually transferring anything. I just popped in a USB thumb drive (wish I did this first...) and used that to complete my file transfer.
A few hours later I realized that my phone was doing some odd things, such as the gallery problem described above. And then I started getting these messages about something being wrong with my SD card in my notification bar.
After a few hours of poking around, I discovered that my Internal Memory was now "read-only" and there was what astro was calling a file called "BensPictures" in the emmc folder. This "file" had no permissions, and tapping and holding on it did nothing.
Solution:
I fired up my TerminalEmulator (my phone was NOT rooted at this point) and began to poke around. Trying to remove anything from the emmc folder gave me a "filesystem read-only" error, but trying to remove this "BensPictures" file gave me error: "Unable to remove file: I/O error"
I started playing around with the mount command, and quickly learned that I couldn't do anything without rooting my phone.
The only thing useful I was able to do at this point was list out the existing mounts by running "mount" in my terminal.
Doing this, I saw that one of the mounts was this:
I knew that was the internal memory. The important part there is
Since I couldn't do everything I needed to (like change the mounts), I rooted my phone.
Everything that took place from this point on was with my phone rooted.
The next thing I did was install SSHDroid so I could run commands from my computer over SSH.
Once I had SSH working, the first thing I tried was to remount the internal memory with read/write enabled using this command:
The command appeared to work, but the mount was still read-only. I tried unmounting using:
And then re-mounting using a similar command like above (minus the "remount" option). The device did remount, and was accessible, but it was still read-only.
I tried mounting the device to a different location, and it was still read-only.
I tried a lot more things here. Honestly, I don't remember a lot of them. But I tried everything I could think of.
Finally, I started thinking about fsck. I discovered that Android has a fsck_msdos command, and since the internal memory on the Droid Incredible is vfat, this was perfect.
I mounted the internal storage (still in read-only mode) and copied everything to my SD card as a backup, and then ran:
I got this output:
It found my broken directory! I said 'y'es and it continued to tell me about several Lost Cluster Chains, and finally finished with a
I thought to myself, "This bad directory couldn't cause all those problems...could it?" and I then rebooted my phone, and the Internal Phone Storage was back to it's good-ol' self. Readable and Writable
I'm a couple reboots later (although only a couple hours) and it appears to be working still!
I sincerely hope that if someone else is having an issue like this, this helps them at least get on the right track!
HTC Droid Incredible running OEM 2.2 on Verizon
Problem:
My Internal Phone Storage was getting mounted as "read-only" and I couldn't write to it.
Symptoms:
- Whenever I booted the phone it would say "There's a problem with your SD card" in the notification bar. However, going to settings > SD & phone storage -> it revealed that my SD card was fine, and my internal storage was "read-only"
- Astro File Manager Clearly showed my emmc folder as unwritable (and nothing happened when I tried to write to the folder)
- My photo gallery would only show photos taken since the problem began. This symptom was the same as in this post (with no solution): http://androidforums.com/incredible...phone-storage-read-only-after-2-2-update.html
I had my phone connected via USB as a Mass Storage Device to a windows machine and was transferring a folder called "BensPictures" that contained approximately 400 megs of photos to the root of the Internal Storage. About 50% of the way through, windows made the device disconnect sound, and alerted me that the USB storage device was no longer available, and that data had been lost in the transfer. I've seen the error before, but never when actually transferring anything. I just popped in a USB thumb drive (wish I did this first...) and used that to complete my file transfer.
A few hours later I realized that my phone was doing some odd things, such as the gallery problem described above. And then I started getting these messages about something being wrong with my SD card in my notification bar.
After a few hours of poking around, I discovered that my Internal Memory was now "read-only" and there was what astro was calling a file called "BensPictures" in the emmc folder. This "file" had no permissions, and tapping and holding on it did nothing.
Solution:
I fired up my TerminalEmulator (my phone was NOT rooted at this point) and began to poke around. Trying to remove anything from the emmc folder gave me a "filesystem read-only" error, but trying to remove this "BensPictures" file gave me error: "Unable to remove file: I/O error"
I started playing around with the mount command, and quickly learned that I couldn't do anything without rooting my phone.
The only thing useful I was able to do at this point was list out the existing mounts by running "mount" in my terminal.
Doing this, I saw that one of the mounts was this:
Code:
/dev/block/vold/179:3 /mnt/emmc vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
Code:
/dev/block/vold/179:3
Everything that took place from this point on was with my phone rooted.
The next thing I did was install SSHDroid so I could run commands from my computer over SSH.
Once I had SSH working, the first thing I tried was to remount the internal memory with read/write enabled using this command:
Code:
mount -o remount,rw,errors=continue -t vfat /dev/block/vold/179:3 /mnt/emmc
Code:
umount /mnt/emmc
I tried mounting the device to a different location, and it was still read-only.
I tried a lot more things here. Honestly, I don't remember a lot of them. But I tried everything I could think of.
Finally, I started thinking about fsck. I discovered that Android has a fsck_msdos command, and since the internal memory on the Droid Incredible is vfat, this was perfect.
I mounted the internal storage (still in read-only mode) and copied everything to my SD card as a backup, and then ran:
Code:
fsck_msdos /dev/block/vold/179:3
Code:
** /dev/block/vold/179:3
** Phase 1 - Read and Compare FATs
Attempting to allocate 845 KB for FAT
Attempting to allocate 845 KB for FAT
** Phase 2 - Check Cluster Chains
** Phase 3 - Checking Directories
/BensPhotos starts with free cluster
Remove? [yn]
Code:
***** FILE SYSTEM WAS MODIFIED *****
I'm a couple reboots later (although only a couple hours) and it appears to be working still!
I sincerely hope that if someone else is having an issue like this, this helps them at least get on the right track!