A dying SDCard (EMMC) causes strange effects on Android

Written by - 2 comments

Published on - Listed in Android Hardware Personal Rant


My daily schedule for a work-day looks somewhat like this: Get up, catch the train and read the paper, work, catch the train and watch an episode (currently Stargate SG1), get home, work some more, sleep. (In case you haven't noticed I often use sarcasm - my life isn't actually THAT boring).

Since Monday my schedule is disturbed - I cannot watch Stargate anymore! It all started Monday evening when I launched the "File Explorer" app as always and wanted to launch the video with "MX Player". Instead of instant video play, MX Player was just loading.. and loading.. and loading the video. During that time the phone (Samsung Galaxy S2 I9100) got very hot and I had to force a power off.

My first guess was that I didn't correctly finish the transfer of the video file to the phone but when I tried to play another episode, which I knew worked before, the same happened. So I took a look at the Android internal logs (using the app "Get Logs") and found some weird  entries:

06-17 17:52:08.745 D/VoldCmdListener( 1868): volume mount /mnt/emmc
06-17 17:52:08.745 D/DirectVolume( 1868): Checking for bad partition major number
06-17 17:52:08.745 I/Vold    ( 1868): /dev/block/vold/179:25 being considered for volume sdcard
06-17 17:52:08.745 D/Vold    ( 1868): Volume sdcard state changing 1 (Idle-Unmounted) -> 3 (Checking)
06-17 17:52:08.750 V/WiredAccessoryObserver( 1992): init()
06-17 17:52:08.755 D/MountService( 1992): volume state changed for /mnt/emmc (unmounted -> checking)
06-17 17:52:08.760 D/MountService( 1992): sendStorageIntent Intent { act=android.intent.action.MEDIA_CHECKING dat=file:///mnt/emmc (has extras) }
[...]
06-17 17:52:09.890 I/StorageNotification( 2113): Media {/mnt/emmc} state changed from {unmounted} -> {checking} (primary = false)
[...]
06-17 17:52:10.115 I//system/bin/fsck_msdos( 1868): ** /dev/block/vold/179:25
[...]
06-17 17:52:10.225 I//system/bin/fsck_msdos( 1868): ** Phase 1 - Read and Compare FATs
06-17 17:52:10.235 I//system/bin/fsck_msdos( 1868): Attempting to allocate 1872 KB for FAT
[...]
06-17 17:52:10.945 I//system/bin/fsck_msdos( 1868): Attempting to allocate 1872 KB for FAT
[...]
06-17 17:52:13.420 I//system/bin/fsck_msdos( 1868): ** Phase 2 - Check Cluster Chains
[...]
06-17 17:52:13.780 I//system/bin/fsck_msdos( 1868): ** Phase 3 - Checking Directories
[...]
06-17 17:52:33.250 I//system/bin/fsck_msdos( 1868): 9305 files, 3249472 free (232618 clusters)
[...]
06-17 17:52:33.615 I/Vold    ( 1868): Filesystem check completed OK
06-17 17:52:33.625 I/Vold    ( 1868): Device /dev/block/vold/179:25, target /mnt/emmc mounted @ /mnt/secure/staging
06-17 17:52:33.630 D/Vold    ( 1868): Volume sdcard state changing 3 (Checking) -> 4 (Mounted)
06-17 17:52:33.630 D/MountService( 1992): volume state changed for /mnt/emmc (checking -> mounted)
06-17 17:52:33.630 D/VoldCmdListener( 1868): volume mount /mnt/sdcard
06-17 17:52:33.630 D/DirectVolume( 1868): Checking for bad partition major number
06-17 17:52:33.630 D/DirectVolume( 1868): Found bad partition
06-17 17:52:33.630 E/DirectVolume( 1868): Fixing major number from 179 to 259 for partition 11
06-17 17:52:33.630 I/Vold    ( 1868): /dev/block/vold/259:3 being considered for volume emmc
06-17 17:52:33.630 D/Vold    ( 1868): Volume emmc state changing 1 (Idle-Unmounted) -> 3 (Checking)
06-17 17:52:33.635 I/StorageNotification( 2113): Media {/mnt/emmc} state changed from {checking} -> {mounted} (primary = false)
06-17 17:52:33.635 D/MountService( 1992): sendStorageIntent Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///mnt/emmc (has extras) }
06-17 17:52:33.635 D/MountService( 1992): volume state changed for /mnt/sdcard (unmounted -> checking)
06-17 17:52:33.640 D/MountService( 1992): sendStorageIntent Intent { act=android.intent.action.MEDIA_CHECKING dat=file:///mnt/sdcard (has extras) }
06-17 17:52:33.655 I//system/bin/fsck_msdos( 1868): ** /dev/block/vold/259:3
06-17 17:52:33.660 I//system/bin/fsck_msdos( 1868): ** Phase 1 - Read and Compare FATs
06-17 17:52:33.665 I//system/bin/fsck_msdos( 1868): Attempting to allocate 1473 KB for FAT
06-17 17:52:33.665 I/StorageNotification( 2113): Media {/mnt/sdcard} state changed from {unmounted} -> {checking} (primary = true)
[...]
06-17 17:52:33.920 I//system/bin/fsck_msdos( 1868): Attempting to allocate 1473 KB for FAT
06-17 17:52:34.405 I//system/bin/fsck_msdos( 1868): ** Phase 2 - Check Cluster Chains
06-17 17:52:34.435 D/MediaScannerReceiver( 3575): action: android.intent.action.MEDIA_MOUNTED path: /mnt/emmc
[...]
06-17 17:52:35.280 I/k9      ( 3261): storage path "/mnt/emmc" mounted readOnly=true
[...]
06-17 17:52:36.150 I//system/bin/fsck_msdos( 1868): ** Phase 4 - Checking for Lost Files
06-17 17:52:36.165 I//system/bin/fsck_msdos( 1868): Next free cluster in FSInfo block (1262) not free
06-17 17:52:36.165 I//system/bin/fsck_msdos( 1868): FIXED
06-17 17:52:36.165 I//system/bin/fsck_msdos( 1868): 5884 files, 540544 free (147964 clusters)
06-17 17:52:36.235 I/Vold    ( 1868): Filesystem check completed OK
06-17 17:52:36.245 I/Vold    ( 1868): Device /dev/block/vold/259:3, target /mnt/sdcard mounted @ /mnt/secure/staging
06-17 17:52:36.250 I/PackageManager( 1992): Updating external media status from unmounted to mounted
06-17 17:52:36.250 D/Vold    ( 1868): Volume emmc state changing 3 (Checking) -> 4 (Mounted)
06-17 17:52:36.250 D/MountService( 1992): volume state changed for /mnt/sdcard (checking -> mounted)
06-17 17:52:36.250 I/StorageNotification( 2113): Media {/mnt/sdcard} state changed from {checking} -> {mounted} (primary = true)
06-17 17:52:36.255 D/MountService( 1992): sendStorageIntent Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///mnt/sdcard (has extras) }
06-17 17:52:36.275 D/MediaScannerReceiver( 3575): action: android.intent.action.MEDIA_MOUNTED path: /mnt/sdcard
[...]
06-17 17:52:36.415 I/k9      ( 3261): storage path "/mnt/sdcard" mounted readOnly=true
[...]
06-17 17:52:38.665 E/Vold    ( 1868): ASEC mount failed (No such file or directory)
06-17 17:52:38.685 I/PackageHelper( 1992): Failed to mount container com.google.android.apps.unveil-2 rc : -1
06-17 17:52:38.685 E/PackageManager( 1992): Failed to mount cid : com.google.android.apps.unveil-2 when installing from sdcard

The most important entry of all these lines:

06-17 17:52:33.630 D/DirectVolume( 1868): Found bad partition

So something must be terribly wrong with my external SDCard (because the Samsung Galaxy S2 also contains an internal SDCard).

Today - a few days and reboots later - I got the confirmation of data corruption just by opening "File Explorer" again:

Android File Explorer shows data corruption

The file names became garbled and the files, of course, can still not be opened.

I will now try to boot into Clockworkmod and manually format /dev/emmc and hope this will fix it. But I honestly doubt that. It is likely that the SDCard is definitely grilled.. :-/

Update June 20th 2013

I rebooted into Clockworkmod and decided to format /emmc. After a reboot I saw that I made a mistake - the internal SDcard was formatted instead of the external one! This is because the naming of the internal and external sd cards are somewhat confusing. In CyanogenMod 9 on Samsung Galaxy S2 the external SD card is called /dev/emmc while in ClockworkMod the _internal_ SD card is called /dev/emmc, the external is /dev/sdcard. Luckily I made a backup before...
So after a final format of /dev/sdcard in Clockworkmod, I copied again the episode I wanted to watch on the external SD card and now it plays.
I just wonder if the format of the external SD card is a temporary or a permanent fix. In case the SD card is really becoming defective, it'd only be a temporary fix.



Add a comment

Show form to leave a comment

Comments (newest first)

Claudio from Switzerland wrote on Sep 17th, 2013:

Hi forcemaker. No, since the last update on June 20th and the format of the SDcard, I didnt experience any issues anymore.


forcemaker from wrote on Sep 16th, 2013:

I got something similar: log files and some content of files seem to be garbled on my SGS2 i9100. I am searching for errors on the emmc/internal storage as on the RAM of the device.

Did you have any trouble since your last update on june 20th 2013?


RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder