Hi
I'm trying to use a symlink from the internal SD card to the external one so I can use WikiDroyd on a larger disk. I have done this before to map google music to my extSDcard and it works great, using this command
ln -s /storage/extSdCard/googleMusic/ /data/data/com.google.android.music/files/music
but when I try
ln -s /storage/extSdCard/WikiDroyd/ /storage/emulated/0/WikiDroyd
I get Function not implemented. I'm guessing it's because /storage/emulated/0 doesn't support symlinks, is this because of it's disk format? Does anyone know how to find out it's format? Can I reformat it?
Note: I am using omega rom
Questions go in Q&A
Thread moved
Friendly Neighborhood Moderator
metronews said:
Hi
I'm trying to use a symlink from the internal SD card to the external one so I can use WikiDroyd on a larger disk. I have done this before to map google music to my extSDcard and it works great, using this command
ln -s /storage/extSdCard/googleMusic/ /data/data/com.google.android.music/files/music
but when I try
ln -s /storage/extSdCard/WikiDroyd/ /storage/emulated/0/WikiDroyd
I get Function not implemented. I'm guessing it's because /storage/emulated/0 doesn't support symlinks, is this because of it's disk format? Does anyone know how to find out it's format? Can I reformat it?
Note: I am using omega rom
Click to expand...
Click to collapse
Is /storage/emulated/0 the default directory for the app? If so, it may be failing due to trying to replace an existing directory with a symlink (particularly if that pre-existing directory is in use at the time).
If the app's directory setting can be altered, why not try putting the symlink elsewhere? Even if the app doesn't let you set a custom directory, creating your symlink elsewhere would, if successful, narrow down the likely causes of the error (unfortunately, if the app's directory setting is hard coded out otherwise unchangeable, then it would also prove that what you want to do is not possible, at least not through this approach)
Sent from my SPH-L710 using xda app-developers app
Are you sure that ln -s will work on non ext partitions? I don't think this won't work on FAT32/NTFS partitions.
lexridge said:
Are you sure that ln -s will work on non ext partitions? I don't think this won't work on FAT32/NTFS partitions.
Click to expand...
Click to collapse
That's a good point, I thought that certain configurations might work (like placing the link on an ext partition that points to a file on a fat 32 partition, since Linux can read both and Windows would never see the Linux-style link, for example) but I'll double check...
Sent from my SPH-L710 using xda app-developers app
styles420 said:
That's a good point, I thought that certain configurations might work (like placing the link on an ext partition that points to a file on a fat 32 partition, since Linux can read both and Windows would never see the Linux-style link, for example) but I'll double check...
Sent from my SPH-L710 using xda app-developers app
Click to expand...
Click to collapse
Just a thought, you might also try busybox ln -s and see if that works.
Related
Why don't we move (on legacy a2sd) also /data/data folder to sdcard?
In this folder resides applications settings, and with 50apps on my desire the data partition (140mb) is used to 60% only for this data folder.
I think getting used to good apps, it's easy to reach 100 installed apps.
What do you think?
Moving data/data causes stability issues.
it can be done by symlinking a folder in your /system/sd ext partition but as the above said it causes stability issues.....
su
ln -s /system/sd/data2/ /data/data/
Click to expand...
Click to collapse
i think this is the command to do it....please someone correct me if i am wrong
Hi all, I've got a problem with Airsync. I can't tell it to save to my emmc/MP3 folder, which is where i keep all my music on my Incredible. It saves synced music to /sdcard/Music by default. I've tried making a symlink (both through ADB and terminal emulator) to the /sdcard/Music folder by using:
ln -s /emmc/MP3 /sdcard/Music
and it simply does not work. How would I do this correctly? Is there something I'm missing? Thanks!
Rom: CM7
Timmah339 said:
Hi all, I've got a problem with Airsync. I can't tell it to save to my emmc/MP3 folder, which is where i keep all my music on my Incredible. It saves synced music to /sdcard/Music by default. I've tried making a symlink (both through ADB and terminal emulator) to the /sdcard/Music folder by using:
ln -s /emmc/MP3 /sdcard/Music
and it simply does not work. How would I do this correctly? Is there something I'm missing? Thanks!
Rom: CM7
Click to expand...
Click to collapse
It is not possible. I have tried too. I think its because both emmc and sdcard are already linked to /mnt.
that makes sense. oh well, I guess they're releasing an update that will store music on emmc soon anyway.
I feel like of done this before. Instead of symlinking try remounting. In the terminal. Make sure you have an empty /sdcard/Music directory to serve as the mount point for /emmc/Mp3
mount /sdcard/Music /emmc/Mp3
or something like that. Sorry I don't remember more of the details, but It's been awhile and I'm away from my computer. Hope it helps.
I tried every way, but I can not use the swap partition on my WFS.
I installed the latest version of the ROM and the Kernel, but I can't make it work.
Does anyone know what should I do to run the "Swap Partition" on my phone?
Go through this.
http://wiki.cyanogenmod.com/wiki/Swap_and_Compcache
The cyanogenmod team feels that swap doesn't serve it's purpose on an Android device. To quote them
"This question is hotly debated, but you almost definitely do not need swap or compcache. The only exception to this may be if the device is a first generation device (i.e. HTC Dream or HTC Magic). If you think swap or compcache may make the device faster, feel free to follow the directions below."
Click to expand...
Click to collapse
And the WFS is not a first generation device
If you still want to go ahead with it, that link provides a how-to.
But the problem is that with this ROM my phone does not recognize the swap partition. I would like to post on its own thread, but I can not because I am a new user.
DanHidalgo said:
I tried every way, but I can not use the swap partition on my WFS.
I installed the latest version of the ROM and the Kernel, but I can't make it work.
Does anyone know what should I do to run the "Swap Partition" on my phone?
Click to expand...
Click to collapse
You have to create a mount script and copy it to /system/etc/init.d and give it the same permissions all the other files in init.d
Attached is the code to use if you have swap as the third partition on your SD card. Remove the .txt extension and place it in /system/etc/init.d and give it the appropriate permissions then reboot
Use the command "free" in a terminal session to verify swap is active and working.
It should be pretty straightforward to modify it to be the second if you aren't using an SD Ext partition for programs.
The code is:
Code:
#!/system/bin/sh
#Checks for a swap partition on mount 3 of the SD card and use it for swap partition.
if [ -b /dev/block/mmcblk0p3 ];
then
#Uncomment the line below to adjust swappiness. Default is 60 I believe
# echo 20 > /proc/sys/vm/swappiness;
swapon /dev/block/mmcblk0p3;
fi;
Change the line:
if [ -b /dev/block/mmcblk0p3 ];
to
if [ -b /dev/block/mmcblk0p2 ];
If you only have your FAT32 Primary and your Swap partition and no SDExt
I will try it this evening. Some people told me that oboe is that I created the Swap Partition with the recovery and I have to create it with the PC.
If I get it working I'll post my results. If not you will see me here again.
Enviado desde mi HTC Wildfire S usando Tapatalk
d33ps1x said:
You have to create a mount script and copy it to /system/etc/init.d and give it the same permissions all the other files in init.d
Attached is the code to use if you have swap as the third partition on your SD card. Remove the .txt extension and place it in /system/etc/init.d and give it the appropriate permissions then reboot
Use the command "free" in a terminal session to verify swap is active and working.
It should be pretty straightforward to modify it to be the second if you aren't using an SD Ext partition for programs.
The code is:
Code:
#!/system/bin/sh
#Checks for a swap partition on mount 3 of the SD card and use it for swap partition.
if [ -b /dev/block/mmcblk0p3 ];
then
#Uncomment the line below to adjust swappiness. Default is 60 I believe
# echo 20 > /proc/sys/vm/swappiness;
swapon /dev/block/mmcblk0p3;
fi;
Change the line:
if [ -b /dev/block/mmcblk0p3 ];
to
if [ -b /dev/block/mmcblk0p2 ];
If you only have your FAT32 Primary and your Swap partition and no SDExt
Click to expand...
Click to collapse
When I try to move the script to the specific file I get: failed to copy, or failed to move. How could I copy or move the script in /system/etc/init.d and give all permissions? I am using ES File Explorer and ASTRO. Should I move the zipped file or only the script? I couldn't move none of them
Portugah said:
When I try to move the script to the specific file I get: failed to copy, or failed to move. How could I copy or move the script in /system/etc/init.d and give all permissions? I am using ES File Explorer and ASTRO. Should I move the zipped file or only the script? I couldn't move none of them
Click to expand...
Click to collapse
You have to mount system partition as RW to be able to manipulate with files there, big white button "Mounr R/W" in the upper part of the Root explorer app while you are in /system/etc/init.d folder. Then you put there swap.txt file that d33ps1x provided up in the post, rename it just to swap and reboot phone.
I did that with almost every version of cm7 from the begining (in which kernel allowed that) and every time it worked, tnx to d33ps1x
kobredabre said:
You have to mount system partition as RW to be able to manipulate with files there, big white button "Mounr R/W" in the upper part of the Root explorer app while you are in /system/etc/init.d folder. Then you put there swap.txt file that d33ps1x provided up in the post, rename it just to swap and reboot phone.
I did that with almost every version of cm7 from the begining (in which kernel allowed that) and every time it worked, tnx to d33ps1x
Click to expand...
Click to collapse
Root explorer is a paid app. Is there any other app I could do that?
Portugah said:
Root explorer is a paid app. Is there any other app I could do that?
Click to expand...
Click to collapse
Total commander for android can do same:
http://forum.xda-developers.com/showthread.php?t=1619734
and it's free
kobredabre said:
Total commander for android can do same:
http://forum.xda-developers.com/showthread.php?t=1619734
and it's free
Click to expand...
Click to collapse
Once installed the app, how do I grant permissions to the file? the link shows images from the older version.
Portugah said:
Once installed the app, how do I grant permissions to the file? the link shows images from the older version.
Click to expand...
Click to collapse
Push and hold the file, choose properties and then hit first button right from the file name and current permissions to expand the menu
kobredabre said:
Push and hold the file, choose properties and then hit first button right from the file name and current permissions to expand the menu
Click to expand...
Click to collapse
I moved the file to the specific folder and I restarted my phone. Opening a2sd the swap button was turned off. I opened the terminal and I typed free, the results are 0-0-0. I didn't work.
Portugah said:
Once installed the app, how do I grant permissions to the file? the link shows images from the older version.
Click to expand...
Click to collapse
I granted permissions to the file using Total Commander app. Thank you. But it looks like it is not working yet.
Portugah said:
I granted permissions to the file using Total Commander app. Thank you. But it looks like it is not working yet.
Click to expand...
Click to collapse
Then the problem can be with kernel on ROM you are using, basic thing is that kernel needs to be abble to support swap for swap to even work... Can't help you much there since you are probably on marvelc version according to you'r country flag, i'm on diferent version. Some1 with same model as yours could help you tough
Is there any way to install another ROM that support swap? which ROM should I use? is there any tutorial?
Portugah said:
Is there any way to install another ROM that support swap? which ROM should I use? is there any tutorial?
Click to expand...
Click to collapse
The [2nd] above post is correct. Swap support is enabled in some custom kernels. If you're looking for another ROM, you're going to primarily ask about the kernel included with that ROM. Stock kernels do NOT support swap. You can enable swap [if you have a supporting kernel] via A2SDGUI or terminal... read up and familiarize yourself with linux swap.. since Android is a branch of Linux; same principles apply
Rob
Sent from my HTC_A510c using Tapatalk 2
This says it's possible to enable swap and compcache on CM7.2, but the howto wiki link is dead
To answer you question directly, by default the swap and Compcache schemes are disabled, but if you still feel the need to use them, above link provides you with a how-to.
So, yes, the CyanogenMod 7.2 supports swap and its usage needs to be activated.
Click to expand...
Click to collapse
Any idea how to do this?
For me the same question. I'm investigating since 1 week, tried scripts etc. no chance
Nexus One,
4EXT recovery (needed for correct sd-ext formatting)
CM 7.2
swap partition is there but not used.
What could i do to enable the swap partition?
Regards,
Marc
Hello,
I have the stable release cyanogenmod 7.2.0.
Swap is not working and gives following message:
swapon: /dev/block/mmcblk0p3: Function not implement
I found some notes saying that the problem is the kernel not supporting
swap. Which kernel can I use with cyanogenmod 7.2.0 with swap support?.
Thanks for your help.
Cheers! This is my first thread. Hopeful i'm not reposting similar thread.
I will tell you how to create swap file for our W. Anyway, swap file works like swap partition. It can help your RAM for improve our W performance.
1. Root your phone
2. Install Superuser
3. Install Busybox
4. Install Terminal Emulator
If you are using CM10 from arco, that's mean you don't need to follow first 4 steps.
5. Open Terminal Emulator
6. Change directory to external sd card (external is recomended, because we won't take some spaces on internal sd card)
Code:
[email protected]:~$ su
[email protected]:~# cd /external_sd
7. Create swap file under external_sd directory. I will create 512MB swap file. If you wanna create other size of swap file, just change value of count. 512 is recomended.
Code:
[email protected]:/external_sd# dd if=/dev/zero of=swapfile bs=1M count=512
8. Set the right permissions (a world-readable swap file is a huge local vulnerability)
Code:
[email protected]:/external_sd# chmod 600 swapfile
9. After creating the correctly-sized file, format it to swap:
Code:
[email protected]:/external_sd# mkswap swapfile
10. Activate the swapfile:
Code:
[email protected]:/external_sd# swapon swapfile
11. Check your swap, whether is work or not.
Code:
[email protected]:/external_sd# free -m
Check your swap, if the value exactly like your value on 7th step, then you did it!
Any question? Just ask here.
You did it? Why U No hit thanks button?
This does not create a partition right? Just a swap file.. Like the paging file in windows?
My only concern is does it really help that much? What I mean is a user noticeable difference. Also would it make the lifespan of the SDcard shorter? Higher the class of the card, the better it is???
I have never done swap on my older phones and I really would like to do it if it makes a whole a lot of difference in terms of usage.
Also can you also let us know how to revert back in case one does not like it? Just delete the file?
Thanks for your answer in advance.
[/QUOTE]
thearif said:
This does not create a partition right? Just a swap file.. Like the paging file in windows?
Click to expand...
Click to collapse
No, it does not.
Yes, somewhat similar.
thearif said:
My only concern is does it really help that much? What I mean is a user noticeable difference.
Click to expand...
Click to collapse
Totally depends on your usage pattern.
thearif said:
Also would it make the lifespan of the SDcard shorter?
Click to expand...
Click to collapse
Yes, probably. That's why you shouldn't create a swapfile anywhere but the External SD.
thearif said:
Higher the class of the card, the better it is???
Click to expand...
Click to collapse
Of course.
thearif said:
Also can you also let us know how to revert back in case one does not like it? Just delete the file?
Click to expand...
Click to collapse
Reboot, then delete the file.
Sent from my GT-I8150 using xda app-developers app
Boosting Perfomance?
RezaBeye said:
Boosting Perfomance?
Click to expand...
Click to collapse
Totally depends on your usage pattern.
Sent from my GT-I8150 using xda app-developers app
omegahanggara said:
Cheers! This is my first thread. Hopeful i'm not reposting similar thread.
I will tell you how to create swap file for our W. Anyway, swap file works like swap partition. It can help your RAM for improve our W performance.
1. Root your phone
2. Install Superuser
3. Install Busybox
4. Install Terminal Emulator
If you are using CM10 from arco, that's mean you don't need to follow first 4 steps.
5. Open Terminal Emulator
6. Change directory to external sd card (external is recomended, because we won't take some spaces on internal sd card)
Code:
[email protected]:~$ su
[email protected]:~# cd /external_sd
7. Create swap file under external_sd directory. I will create 512MB swap file. If you wanna create other size of swap file, just change value of count. 512 is recomended.
Code:
[email protected]:/external_sd# dd if=/dev/zero of=swapfile bs=1M count=512
8. Set the right permissions (a world-readable swap file is a huge local vulnerability)
Code:
[email protected]:/external_sd# chmod 600 swapfile
9. After creating the correctly-sized file, format it to swap:
Code:
[email protected]:/external_sd# mkswap swapfile
10. Activate the swapfile:
Code:
[email protected]:/external_sd# swapon swapfile
11. Check your swap, whether is work or not.
Code:
[email protected]:/external_sd# free -m
Check your swap, if the value exactly like your value on 7th step, then you did it!
Any question? Just ask here.
You did it? Why U No hit thanks button?
Click to expand...
Click to collapse
Good evening,
when i put command "[email protected]:/external_sd# mkswap swapfile" phone give following message:
"image is too small"
can i continue??
Tks in advance
moonwonder said:
Good evening,
when i put command "[email protected]:/external_sd# mkswap swapfile" phone give following message:
"image is too small"
can i continue??
Tks in advance
Click to expand...
Click to collapse
Please post here the result of the 'ls -la' command in the directory where you created your swapfile.
Sent from my GT-I8150 using xda app-developers app
R: [HOW TO] Create Swap File For Galaxy W
in attachment.
tks
Sent from my GT-I8150 using xda app-developers app
R: [HOW TO] Create Swap File For Galaxy W
moonwonder said:
in attachment.
tks
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
i'm seeing that file size is 512 byte and not Mbyte...
Sent from my GT-I8150 using xda app-developers app
moonwonder said:
in attachment.
tks
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
Have you installed the latest Busybox by Stericson?
R: [HOW TO] Create Swap File For Galaxy W
resolved:
changing count number on 'dd' function. (from 512 to 536870919)
i suppose that my busybox don't support byte size (bs=1M)
tks.
Sent from my GT-I8150 using xda app-developers app
moonwonder said:
resolved:
changing count number on 'dd' function. (from 512 to 536870919)
i suppose that my busybox don't support byte size (bs=1M)
tks.
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
You should instead try changing bs=1M to bs=$((1024*1024))
Reason: Flash memory works in blocks. bs is the amount of data being written at a time. If you write 1 byte at a time, you're writing thousands of times to the same block, which not only makes the process slower, but also shorten the life of your Flash memory (because, appending 1 byte requires a cycle of: read the whole block, add one byte, write back the whole block).
The largest Flash memory block size I can ascertain from specs on the Internet is 128 KiB. Thus, bs=$((1024*1024)) would be suitable (1 MiB is an integer multiple of 128 KiB).
If your dd doesn't support the bs parameter at all, you really should replace it with one that does.
Sent from my GT-I8150 using xda app-developers app
R: [HOW TO] Create Swap File For Galaxy W
thanks!!!
now i understand reason that the time for swap creation was about 3 hours...ahahaha
in attachment my new swap!
Sent from my GT-I8150 using xda app-developers app
moonwonder said:
thanks!!!
now i understand reason that the time for swap creation was about 3 hours...ahahaha
in attachment my new swap!
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
LOL... with bs=$((1024*1024)), I took only about 1.5 minutes:
Code:
[email protected]:/ $ cd sdcard
ro of=tes.fil bs=$((1024*1024)) count=512 <
512+0 records in
512+0 records out
536870912 bytes transferred in 86.185 secs (6229284 bytes/sec)
[email protected]:/sdcard $
Sent from my GT-I8150 using xda app-developers app
I followed a thread to make an ext2 partition (about 1 GB, unfortunately couldn't make it divisible by 256)
then read this thread and another one so i created a swapfile in that partition ( data/sdext2/ ) . now i have a couple of question about the swapfile
1.is that line important & why ??
omegahanggara said:
8. Set the right permissions (a world-readable swap file is a huge local vulnerability)
Code:
[email protected]:/external_sd# chmod 600 swapfile
Click to expand...
Click to collapse
it's not present in pepoluan's code
pepoluan said:
To create a swap RAM:
Code:
su
targ=/mnt/sdcard/.swapfile
dd if=/dev/zero of=$targ bs=$((1024*1024)) count=64
mkswap $targ
Click to expand...
Click to collapse
2. for heavy games, which is more recommended : 256 or 128 MB swapfile, pep said 64 which will b a bummer for me
pepoluan said:
I have experimented *a lot* with swap memory, and I can tell you with absolute confidence:
Swap files larger than 64 MiB *will* result in additional lags. Larger than 128 MiB, your phone will be very slow.
To activate, you don't need to reboot.
Go to the Terminal and enter the command:
cd /mnt/sdcard
ls .*
(replace "sdcard" with the actual location of where you created the swap file, of course)
Click to expand...
Click to collapse
one last thing : is the ls.* code different from the swapon code or they r the same ??
I made an sh file for this and placed it in init.d coz i want it to automatically run when the system boots. However it didn't work.
So for now i just placed it in /system/bin so that i only need to type enable_swap in the terminal.
Any way to make it work in init.d?
Any Answer ???
klacenas said:
I made an sh file for this and placed it in init.d coz i want it to automatically run when the system boots. However it didn't work.
So for now i just placed it in /system/bin so that i only need to type enable_swap in the terminal.
Any way to make it work in init.d?
Click to expand...
Click to collapse
I assume you put the swap file in /sdcard ?
The first partition of the SD Card does not get mounted until all scripts in init.d have finished. I'm experimenting with Stericson's new BusyBox, which includes the 'nohup' command.
Sent from my GT-I8150 using xda app-developers app
pepoluan said:
I assume you put the swap file in /sdcard ?
The first partition of the SD Card does not get mounted until all scripts in init.d have finished. I'm experimenting with Stericson's new BusyBox, which includes the 'nohup' command.
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
Yes I put it in sdcard. Thanks for the explanation. Please share if you succeed.
Edit: if its not possible through init.d, is there another way of automatically executing a script after init.d?
Sorry not really a Linux person, I'm more familiar with autoexec.bat
Sent from my GT-I8150 using xda app-developers app
klacenas said:
Yes I put it in sdcard. Thanks for the explanation. Please share if you succeed.
Edit: if its not possible through init.d, is there another way of automatically executing a script after init.d?
Sorry not really a Linux person, I'm more familiar with autoexec.bat
Sent from my GT-I8150 using xda app-developers app
Click to expand...
Click to collapse
Install SManager, add the script as a boot script. Boot scripts run using SManager always run after SD Card mounts.
Sent from my GT-I8150 using xda app-developers app
Hi guys, today i am here to tell you a method only tested on a galaxy y, but i hope it will work for all. this is a method to change the download location for play store.
WARNING!!!
1. WARRANTY IS NOW VOID.
2. NOT MY PROBLEM IF SOME APP FAIL.
3. PLEASE, PLEASE, PLEASE DO A NANDROID BACKUP BEFORE THIS.
This is a simple code but it needs root for sure. now the necessities are as follows:
1. A complete nandroid backup
2. Root Permissions
3. Any terminal emulator. e.g https://play.google.com/store/apps/details?id=hecticman.jsterm
4. You need to know the default download location and the mount point of sd card( if that is where you want the new download location )
Now let's start.
Just know this that mnt/sdcard will have to be replaced by your sdcard mount point and data/app will have to be replaced by the default download location. i underlined them for easy understanding.
NOT MY PROBLEM IF THIS FAILS AND YOUR PLAY STORE CRASHES. JUST DO A NANDROID RESTORE.
THERE WILL ALREADY BE A $ AT START SO U DON'T HAVE TO PUT IT.
$ su
# mkdir /mnt/sdcard/playstore
# cp -r /data/app/* /mnt/sdcard/playstore
# rm -rf /data/app
# ln -s /mnt/sdcard/playstore /data/app
Click to expand...
Click to collapse
what the code does:
1. Grant super user permissions
2. Make a directory in sdcard named playstore.
3. Copy all items (recursively) from data/app to sdcard/playstore
4.Symlink the new location to fake the original.
Hitting Thanks can help.
and once again PLEASE BACKUP BEFORE THIS AND RESTORE IF NOT SUCCESSFUL.
This is based on the code used by link2sd.
Could you please double check your code fragments?
For me it looks, like you create a directory "playstore", but then copy to a directory "playstore-temp", which will most like not exist at that moment.
The ln you're using can't realy work as long as the /data/app directory is still in place... so you would first need to delete /rename it.
Just my 2¢
thanks dude
DThought said:
Could you please double check your code fragments?
For me it looks, like you create a directory "playstore", but then copy to a directory "playstore-temp", which will most like not exist at that moment.
The ln you're using can't realy work as long as the /data/app directory is still in place... so you would first need to delete /rename it.
Just my 2¢
Click to expand...
Click to collapse
looks like i was drunk making so much mistakes . corrected it.
It's not so simple if you use Link2SD. If you link some apps to sdext partition, some files in /data/app are symlinks which cannont be copied to /mnt/sdcard/playstore as it's FAT32. You have to try to symlink /app/data to folder on sdext partition. Create a folder /data/sdext2/playstore, copy /data/app/* there, delete /data/app and symlink /data/sdext2/playstore as /data/app. Sdext partition uses linux filesystem and all symlinks should work properly. I haven't tested it yet, but will do in a minute.
EDIT:
It doesn't work with Link2SD. Phone hangs on boot. It's probably cause Link2SD app must be directly in internal memory (so in real /data/app, not symlinked). I'll try to symlink /data/data or /data/dalvik-cache to save some internal memory but I doubt it'll work.