I am using the "adb shell" command to access either of an LG P690 (device A) or a Samsung Galaxy SIII (device B). Device A also has a 32GB microSD card plugged in while device B does not. When fromthe shell prompt I cd /sdcard and do a df I get:

  • On device A: /sdcard Size 14G Blksize 8192
  • On device B: /sdcard Size 12G Blksize 4096

Does this refer to internal memory? Device B also has a /storage directory which holds 0 bytes (what is this?).

Also, both have a /data directory which I know is where installed apps go. Is this also on internal storage? How do I know whether /data is on internal or external SD?

I'm confused as to why a directory called /sdcard would refer to internal as opposed to external memory. Is there no FHS standard for the Android file system as there is for Linux?


That's two different things, at least the first depending on a) Android version, b) manufacturer, and c) sometimes even the device in question:

  • before Android 4.0, /sdcard usually was were the external SDCard was to be found
  • starting with Android 4.0 (or even 3.x?), this changed for most devices, and usually became the place of the so-called internal SDCard
  • where the external SDCard is found with the latter group, differs a lot. Locations known to me include:
    • /sdcard_ext
    • /sdcard/external_sd

What really resides where, you can check with commands like mount or df. While mount will list all mounted file systems (including the "virtual" ones like e.g. /proc and /sys), together with details on where they were mounted from and what options have been used, this might be a bit confusing (at least to beginners). So you might rather want to use df, which sticks to the "real file-systems": it does not show where they are mounted from, but instead shows their total/used/free space, which might be even more useful to figure out what matches best.

As for /data: Yes, this usually resides on internal storage -- but might also depend on implementation. With Android 4.x, "internal storage" and "internal SDCard" are often "unified" (i.e. the "internal SDCard" often is nothing but a directory on internal storage). This was done a.o. to get rid of the problem of a filled-up internal storage (it can "expand" into the internal SD area now), or a full internal SDCard and plenty of space on internal storage (can "expand" the other way around, too -- as it's all the same "drive").

  • Still, on device B df command shows /data and /storage/sdcard0 as different partitions even though both have the same capacity and show same amount of used space. On this device /storage/sdcard0 and /storage/extSdCard are probably the internal and external SD cards. May 2 '13 at 8:28
  • Looks correct to me. As for internal storage/internal SDCard: as I wrote, that very much depends on implementation. It's encouraged to use "unified storage" (see this blog and this session transcript), but it's not enforced in any way.
    – Izzy
    May 2 '13 at 8:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.