5

I am using the adb shell command to access either 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 I cd /sdcard and do a df from the shell prompt, 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?

0

1 Answer 1

4

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").

2
  • 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. Commented May 2, 2013 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
    Commented May 2, 2013 at 8:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .