Storage problem?


Question

I'm having a weird issue. I'm using a Sony Xperia Z1s running lollipop. I noticed a few days ago that Spotify was giving me a notification that says "No Storage Area Found. Check the device storage settings." This error of sorts prevents Spotify from being used at all. I cleared the cache, data, and even Uninstalled spotify. I thought nothing of it, until I also noticed I can't take pictures. Technically, I can take photos, but they don't save. And, yes, I still have plenty of space on my SD card and internal space.



SD card space internal space espotify notification

The screen shots are of the spotify notification and the storage space on my phone (click images for larger variants)



I ran mount in Terminal Emulator for Android and got this:



u0_a307@C6916:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
tmpfs /tmp tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,relatime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,relatime,discard,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/apps_log /mnt/idd ext4 rw,seclabel,nosuid,nodev,noexec,noatime,discard,nobarrier,data=ordered 0 0
tmpfs /storage/remote tmpfs rw,seclabel,relatime,size=1024k,nr_inodes=256,mode=750,gid=1028 0 0
/dev/block/platform/msm_sdcc.1/by-name/LTALabel /lta-label ext4 ro,context=u:object_r:lta_label:s0,nosuid,nodev,noexec,noatime,data=ordered 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
tmpfs /storage/emulated tmpfs rw,seclabel,nosuid,nodev,relatime,mode=751,gid=1028 0 0
/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:65 /mnt/secure/asec vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /storage/sdcard1 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
/dev/fuse /storage/emulated/0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
/dev/fuse /storage/emulated/legacy fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other,allow_utime_grp 0 0
u0_a307@C6916:/ $

Answer

As I guessed (and was proven by the output of the mount command), parts of the file system were mounted read-only – specifically the internal and external SD cards. Take a look at the lines with vold/179:65 entries ("vold" is used for the SD cards only), I'm picking one for example:



/dev/block/vold/179:65 /mnt/media_rw/sdcard1 vfat ro,[…],errors=remount-ro[…]


The syntax here (simplified) is: <device> <mount-point> <file-system> <options>. So we see we have a "vold block device" (an SD card that is) mounted as sdcard1 (the external one; the internal usually is sdcard0) using VFAT as file system. Now come the options, and the first we see is ro which stands for "read-only". Same applies to the internal card. Being read-only, nothing can be written here – hence your problems.



How can that happen? you might ask – so let me point to the option at the end: errors=remount-ro. Initially, both cards were mounted in read-write mode. Something caused trouble, and the system had "too many errors" when reading/writing to the cards – so this condition was triggered: to protect the cards against damage, Android remounted them read-only. Which also explains why a reboot solved the issue: at boot time, after a check of the file systems, they again are mounted read-write – until some issues/errors trigger the read-only remount again.



So what should you do? For now, the reboot seems to have solved the issue. If it doesn't reappear, I'd say there's nothing else here you should be worried about. Same if it pops up once or twice a year: shut down the device, leave it down for a few minutes to be on the safe side ("cool down" of the system :), boot up again, relax. But if it happens frequently, there might be some issues with the controller1 – something you cannot fix yourself. I'd contact service then with a detailed description (e.g. include a link to your question here).






1: Why do I suspect a problem with the controller – and not with the card? Because IMHO it's pretty much unlikely that two independent storages have the same issue at the same time. As pointed out, both SD cards were suddenly remounted read-only: one is the physical external card in the slot, the other located on the built-in storage. OTOH, it could also be some bug in vold, as only the SD cards are affected – and the very same controller dealing with the internal SD card must deal with the other parts of your internal storage as well, which was not affected. But then again, that's hardly anything you can solve; the manufacturer must provide a bugfix (system update) then.



And PS: don't let the line /dev/fuse /storage/sdcard1 fuse rw,[…] confuse you – which suggests the "partition located at /storage/sdcard1" is mounted read-write. That's only the "FUSE overlay" on top of it. So this file system is declared read-write – but the underlying one still is read-only. Which would mean the "on-top FUSE file system" would accept write commands – but couldn't commit them to the card then as the underlying system is read-only.


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes