Internal Phone Storage becomes read-onlySupport


  1. ben.mcfadden

    ben.mcfadden Member

    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:

    • 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
    Back story:
    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 (Text):
    1. /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
    2.  
    I knew that was the internal memory. The important part there is
    Code (Text):
    1. /dev/block/vold/179:3
    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:

    Code (Text):
    1. mount -o remount,rw,errors=continue -t vfat /dev/block/vold/179:3 /mnt/emmc
    The command appeared to work, but the mount was still read-only. I tried unmounting using:
    Code (Text):
    1. umount /mnt/emmc
    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:
    Code (Text):
    1. fsck_msdos /dev/block/vold/179:3
    I got this output:

    Code (Text):
    1. ** /dev/block/vold/179:3
    2. ** Phase 1 - Read and Compare FATs
    3. Attempting to allocate 845 KB for FAT
    4. Attempting to allocate 845 KB for FAT
    5. ** Phase 2 - Check Cluster Chains
    6. ** Phase 3 - Checking Directories
    7. /BensPhotos starts with free cluster
    8. Remove? [yn]
    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
    Code (Text):
    1. ***** FILE SYSTEM WAS MODIFIED *****
    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!

    Advertisement
    :
    JennyDyver48, scotty85 and bmorearty like this.
  2. bmorearty

    bmorearty New Member

    I love you!

    Thank you for posting these detailed instructions. My Droid Incredible's internal storage recently became read-only too. After trying several things I found these instructions. They worked perfectly.

    I had never rooted a phone before and was a little intimidated, but the 'unrevoked' tool made it simple.

    The only things I did differently from your instructions (after rooting the phone) were:
    • Instead of downloading SSHDroid I ran the fsck_msdos command from Terminal Emulator.
    • After rooting the phone and running Terminal Emulator, I typed "su" to run in SuperUser mode before running fsck_msdos.
    • fsck_msdos was asking me to verify a TON of changes so I hit ^C (hold down the scroll button and hit C) to stop it, then I ran fsck_msdos with the -y option to automatically answer "yes" to every question:

    Code (Text):
    1. fsck_msdos -y /dev/block/vold/179:3
    JennyDyver48 likes this.
  3. ben.mcfadden

    ben.mcfadden Member

    Great! I'm glad it worked for you too. I was beginning to wonder if I was the only person who ever experienced this. :)
  4. cantare

    cantare Member

    Another borked Incredible w/ "read-only" emmc, "SD Card problem" and thousands of missing photos fixed with fsck & terminal emulator... thanks, OP!
  5. JennyDyver48

    JennyDyver48 New Member

    I recently experienced the same problem with my Samsung Galaxy S2 GT-I9100 where the internal phone memory suddenly became read-only while the SD card was still OK.

    Before stumbling over this thread (after scouring the web to no avail for possible causes and solutions) I tried many things (short of a factory reset) including trying to format the internal storage (which silently failed because it was still read-only)!

    After reading the posts above I found the culprit responsible for the read-only mount. The "Android" folder had some garbage file names in it. My phone wasn't rooted and I can't believe there wasn't any built-in function for checking the integrity of the file system. I guess they thought it could never become corrupted... Truth is I still don't know what corrupted those garbage files, it must have been some messed app update from the Google Play market...

    So the only solution was to root my phone and since I'm no expert at that I searched for the easiest way to do it. Luckily I found the Framaroot app which does just that, root your phone in one click by using an exploit tailored for your particular phone:

    http://forum.xda-developers.com/showthread.php?t=2130276

    The "Aragorn" exploit worked nicely for my S2 GT-I9100 (Android version 4.1.2). The next steps were a walk in the park:

    I installed SuperSU and Terminal Emulator from the Google Play market, fired up Terminal Emulator, executed "mount" to find the name of my internal storage, then executed "su" to make myself root and finally used fsck_msdos as described above to fix my corrupted folder (truncated it and deleted the garbage entries).

    After rebooting the phone, my internal storage was once again mounted as read-write and everything was back to normal. Thank you for posting this thread and I hope this solution will help someone else too with their corrupted read-only file system.

    -- My YouTube Channel
  6. Jetra

    Jetra New Member

    Htc incredible su binary v3.0.3.2
    I have bt5 arm boot folder in my internal storage because i do not have a sd large enough to store it. well when ever i try to access it with terminal i get denied. it seems like you guys are going in the direction that i need to get permissions to access the os. I really want this to work any help would be appreciated.
  7. PaulAndroid

    PaulAndroid Member

    What a terrible OS
    So this is the equivalent of un-ticking the read only check box in Windows.
    I am going to take my read-only LG phone to the store and throw it through the most expensive LG television they have. Maybe then they will take some notice.:mad:
  8. neoklasik

    neoklasik New Member

    it is supposed to install the SSH if memory is read-only?


    I can not do anything, not install or uninstall. how else can modify the internal memory to make it as read-write?
Loading...

Share This Page