4

I would like to bind one directory to another in order to extend the storage capacity of the first directory.

In linux you can execute:

mount --bind /path/to/directory1 /path/to/directory2

However, the Android shell doesn't understand the "--bind" and "-B" params. This could also be accomplished through fstab, but I'm unsure of the syntax.

I need to perform this operation because my Samsung Galaxy S (SGS) has /data/data symlinked to /datadata, the latter of which resides on a partition that can only be 115 MB, and is constantly full as a result. I'd like to extend the space by binding a directory from somewhere else with more room.

Thanks in advance, I've been looking around for two days for some ideas.

  • Do you have busybox installed? Have you tried mount -o bind /path/to/dir1 /path/to/dir2 (I think the busybox version supports that on Android)? You've tagged this with 4.0 ICS - are you running an unofficial build of ICS? – eldarerathis Jan 8 '12 at 18:30
  • 1
    Note that mount --bind /directory1 /directory2 would hide the files currently in /directory2. Use it only if /directory2 is empty. If you want more room under /directory2, move the files that are already there under /directory1 first. – Gilles Jan 8 '12 at 20:03
  • Busybox is installed, and the "-o bind" param did the trick. As Gilles pointed out, it did hide the files, so they must be copied first. I am running ICS AOSP that has been built for the SGS using a custom kernel. – ElderJedi Jan 9 '12 at 14:37
  • 1
    For those who view this thread in search of answers: this procedure is a temporary workaround and not a full solution. Here is a description of the true problem: [link]forum.xda-developers.com/… – ElderJedi Jan 9 '12 at 14:46
  • use directory bind... forum.xda-developers.com/showthread.php?t=1410262 – user14331 Apr 17 '12 at 10:36
4

From @eldarerathis --

Do you have busybox installed? Have you tried mount -o bind /path/to/dir1 /path/to/dir2 (I think the busybox version supports that on Android)?

2

Have you tried symlinking to the folder? You can do this in the Root Explorer app, which does cost, sorry!

  • A symlink won't work for extending the directory, and I don't think you'd want to replace it -- AFAIK parts of the system rely on it being an actual partition. – Matthew Read Jan 8 '12 at 19:13
  • @MatthewRead A symlink will work just as well as a bind mount here. A bind mount seems like unnecessary complexity here. – Gilles Jan 8 '12 at 20:02
  • @Gilles I know nothing about bind mounts but I don't see how pointing /data/data/ to anywhere but the datadata partition can avoid breaking things. Linking individual folders inside it outwards might work (e.g. making /data/data/com.rovio.angrybirds/ a symlink to /sdcard/dataext/com.rovio.angrybirds/) but it would be a pain to do it. – Matthew Read Jan 8 '12 at 20:53
2

Your command is wrong. It's not:

mount --bind

Try this instead:

mount -o bind

The complete command is:

mount -o bind /path/to/directory1 /path/to/directory2

1

This isn't an direct answer but will help you achieve your goal.

The app link2sd extends (actually preservers) your internal storage by linking an app's apk, dex, and lib file to a partition in SD Card.

You can use the app in rooted phone or you can contact the developer and ask him how he did it. He is very friendly.

You may also want to check data2sd where the whole app is installed on SD card.

  • I'm interested in your solution because it seems to get more at the core of the problem. However, I'm wondering if moving the apk, dex, lib files will have any effect on the free space of /datadata? – ElderJedi Jan 9 '12 at 14:49
  • Yes it will. I've HTC Desire with only 147MB internal space and with link2sd I've managed to install 300% more applications. The only downside is it will not link the data for your applications which sometimes can be huge. If you want to link data as well try data2sd. – roxan Jan 9 '12 at 15:08

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.