=================== GOOD NEWS ================
Thanks to GORO and Z we have a solution
tkymgr said:
Hi,
because link2sd rearranges install-recovery.sh
I made a patch for patch for using link2sd
for CM7-Z-MOD-002
for SE 2.3.3 sample
Z's work contributes to all.
Thanks for Z !!
Cheers,
tkymgr
Click to expand...
Click to collapse
Step by step guide
http://forum.xda-developers.com/showpost.php?p=16853029&postcount=39
thanks to waigsr
for those looking to see the technical aspects of it.
SE sample zip contains a vold replacement from cm7 which actually do the magic of making sure that first partition gets mounted.
Note : as Link2SD messes with install-recovery.sh its adviced that after flashing this zip port any specific tweak you have in install-recovery.sh over to install-recovery2.sh in the same folder.
and then run link2SD
Hope this helps.
-============== Keeping old study for later reference and memories only ==============
I have been messing around with Link2SD and its config here is a short writeup for those who want to help.
The basic problem
Link2SD looks for a partition no of /sdcard +1 partition
Android has a habbit of mounting the last partition as /sdcard
so link2sd is going to fail in all senses.
however if anything is mounting at /data/sdext2 Link2sd condsider it as a second partition
so we still have hope of using it however there are several limitations of it.
multiple ways in which link2sd could be used.
1) create 2 partitions on sdcard
a) ext2 partition as mmcblk0p1
b) vfat partition as mmcblk0p2
entry in install-recovery.sh
mount -t ext2 /dev/block/mmcblk0p1 /data/sdext2
Cons : xrecovery can't mount sdcard as its mmcblk0p1 that xrecovery mounts
2) create 2 vfat partitions
a) mmcblk0p1 mounting itself at /data/sdext2
b) mmcblk0p2 mounting itself as /sdcard
cons recovery related files will go in /data/sdext2
3) three partition layout
a) mmcblk0p1 -> reserverd for recovery related stuff
b) mmcblk0p2 -> link2sd
c) mmcblk0p3 -> SDCARD
or find an alternative to use mmcblk0p1 as /sdcard
or use a loop file as /data/sdext2
Do suggest what you all think and how should we proceed.
-=======reserved==========
and u sure this doesnt break recovery?
ok now that i read the post carefully i understand that it WILL BREAK recovery
DooMLoRD said:
and u sure this doesnt break recovery?
ok now that i read the post carefully i understand that it WILL BREAK recovery
Click to expand...
Click to collapse
cons highlighted to avoid confusion.
any idea how we can get this piece to work.
BTW why do we need it when we have app2sd ?
How's it better ?
anantshri said:
cons highlighted to avoid confusion.
any idea how we can get this piece to work.
Click to expand...
Click to collapse
keep only one FAT32 partition...
modify the recovery ramdisk to mount that partition to /sdcard
DooMLoRD said:
keep only one FAT32 partition...
modify the recovery ramdisk to mount that partition to /sdcard
Click to expand...
Click to collapse
that could be done
however there is one more issue which i found just now
SDCARD can't be mounted to PC till both partitions are umounted and that won't be done automatically so we need alternative for sdcard umounting also
something like a gscript code for umounting /data/sdext2 before attempting sdcard mount to pc
the new vold introduced in froyo causes this issue
Adolf1994 said:
the new vold introduced in froyo causes this issue
Click to expand...
Click to collapse
the default vold.fstab listing is
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
some stuff online suggests that i can specify a partition number manually.
however
Code:
dev_mount sdcard /mnt/sdcard [B]1[/B] /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
when i am trying this it barks out and not even mounts sdcard.
With the sdcard parted in 3 partitions, I tried to make the third partition recognized by my pc, and I tried an application named multimount sd or something like that and it worked for me. You can found it in the market. With it, the pc can recognize the third partition not the first. Maybe that will help in your project.
Sent from my X10i
i meant the vold binary/system, not the fstab config
Adolf1994 said:
i meant the vold binary/system, not the fstab config
Click to expand...
Click to collapse
can you point me to the correct code for this.
fat32 is first partition
ext2 is second partition
vold.fstab
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
this will mount fat32 partition
dev_mount ext2 /mnt/sdcard 1 or 2 /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
should mount ext2 for link2sd
the vold from 2.1 works well as you can see and if you'd have googled it, then you'd know there is a revised version of vold in 2.2+
How about instead bind mounting a folder on /system as /data/sdext2 did this for ages on 2.1 to get more space for apps without probs. Obviously /system has to be mounted rw which isn't a prob for me and at least on stock there's loads of free space there which is a shame to waste.
Code:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
mount -o bind /system/app2 /data/sdext2
Think the folders need to be created first.
patch for using link2sd
Hi,
because link2sd rearranges install-recovery.sh
I made a patch for patch for using link2sd
for CM7-Z-MOD-002
for SE 2.3.3 sample
Z's work contributes to all.
Thanks for Z !!
Cheers,
tkymgr
aZuZu said:
fat32 is first partition
ext2 is second partition
vold.fstab
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
this will mount fat32 partition
dev_mount ext2 /mnt/sdcard 1 or 2 /devices/platform/msm_sdcc.1/mmc_host/mmc0 /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.4/mmc_host/mmc1
should mount ext2 for link2sd
Click to expand...
Click to collapse
I also assumed something like this however android seems to be needing a last partition as vfat and that vfat is mounted as sdcard or nothing is mounted.
shaunbu said:
How about instead bind mounting a folder on /system as /data/sdext2 did this for ages on 2.1 to get more space for apps without probs. Obviously /system has to be mounted rw which isn't a prob for me and at least on stock there's loads of free space there which is a shame to waste.
Code:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
mount -o bind /system/app2 /data/sdext2
Think the folders need to be created first.
Click to expand...
Click to collapse
for you i recommand checking http://forum.xda-developers.com/showthread.php?t=1206149 and also system being rw all the time is not at all a good idea.
tkymgr said:
Hi,
because link2sd rearranges install-recovery.sh
I made a patch for patch for using link2sd
for CM7-Z-MOD-002
for SE 2.3.3 sample
Z's work contributes to all.
Thanks for Z !!
Cheers,
tkymgr
Click to expand...
Click to collapse
Thanks buddy will check it as soon as possible ...rightnow my sdcard is not mounting nomatter what setting i do thinking of flashing CM7 and will see how it goes from there.
Note : just checked the zip i think SE stock needed a relacement at vold. will just flash the vold and see if it works.
tkymgr said:
Hi,
because link2sd rearranges install-recovery.sh
I made a patch for patch for using link2sd
for CM7-Z-MOD-002
for SE 2.3.3 sample
Z's work contributes to all.
Thanks for Z !!
Cheers,
tkymgr
Click to expand...
Click to collapse
Thanks buddy. I can confirm the SE 2.3.3 sample zip worked. I flashed the zip, turned off my x10, partitioned the sd on my pc using fat32 & ext32, powered on and DID NOT get previous error of sd not recognized on startup. It mounted fat32 partition and link2sd recognized ext2 partition right away. Selected ext type, rebooted again and I've moved apps that I wanted to the sd card. Rebooted a couple more times and apps are still linked and running fine. Time will tell if any apps will have issues or any tweaks on this rom will be affected. Using WBs v3.9 custom GB and I'll report again later.
Again thank you to everyone's efforts and for not giving up on this old feature.
Edit: Forgot to mention I can still enter xrecovery manually and using the xperia reboot app.
tkymgr said:
Hi,
because link2sd rearranges install-recovery.sh
I made a patch for patch for using link2sd
for CM7-Z-MOD-002
for SE 2.3.3 sample
Z's work contributes to all.
Thanks for Z !!
Cheers,
tkymgr
Click to expand...
Click to collapse
confirmed working
Post updated with details......
Please, note, that everything you had previously added to install-recovery.sh, is now renamed into install-recovery.sh.ori. So, if you want it back, working, you need to rename/copy to install-recovery2.sh
How to convert to EXT4 non-destructively from EXT3 for SD-EXT and Dalvik when you have activated A2SD chachesd and A2SD datasd?
EXT3 > EXT4
Easy. Don't convert. Ext4 spoils your card.
Sent from my GT-S5830 using XDA App
http://www.ibm.com/developerworks/linux/library/l-ext4/
is a good resource for this.
http://ext3vsext4.com/2011/06/ext4-compared-to-ext3/
Something else to read
http://gparted.sourceforge.net/
or try this.
Hope it helps.
Baracs said:
http://www.ibm.com/developerworks/linux/library/l-ext4/
is a good resource for this.
http://ext3vsext4.com/2011/06/ext4-compared-to-ext3/
Something else to read
http://gparted.sourceforge.net/
or try this.
Hope it helps.
Click to expand...
Click to collapse
I booted into Ubuntu Linux LiveCD then
Converting ext3 to ext4
If you are upgrading /dev/sda2 that is mounted as /home, from ext3 to ext4, do the following.
umount /dev/sda2
tune2fs -O extents,uninit_bg,dir_index /dev/sda2
e2fsck -pf /dev/sda2
mount /dev/sda2 /home
Again, try all of the above commands only on a test system, where you can afford to lose all your data.
Click to expand...
Click to collapse
from http://www.thegeekstuff.com/2011/05/ext2-ext3-ext4/
Although in Minitool Partition Wizard Home Edition, no matter how many times I refresh it, the EXT4 partition that shows as /dev/sdb2 in GParted always shows as EXT3. Maybe a program limitation?
Why?
consegregate said:
Easy. Don't convert. Ext4 spoils your card
Click to expand...
Click to collapse
Why does it spoil the card? Did it spoil your card with data=writeback (no journalling) mode or without?
Well, I've just had a complete corruption of my ext4 /sd-ext/ *with* journalling, and rebooting into recovery and using e2fsck on the unmounted partition couldn't fix the filesystem:
Code:
e2fsck: Invalid argument passed to ext2 library while rewriting block and inode bitmaps for /dev/block/mmcblk0p2
Not sure why ext2 library error occurs with e2fsck, but no way to fix, had to do a full recover of sd-ext using CWM...
I've not used ext2, but do note that cyanogenmod 7.2 always mounts /sd-ext/ as ext3, I suppose for a reason...
K, time to give this a proper OP, if anyone wants any of the info that was here before you can look here
_________________________________________________________________________________________________
So, the whole idea here started with me reading an article on how part of the whole I/O problem with the transformer is partially caused by the hardware used as internal storage. I wanted to find out if this had any merit and I figured the best way to do it would be to "replace" the internal storage. I did this by mounting the /data partition to the exteral SD (which according to my research, my specific SD Card is better at writing speeds - allegedly the main problem with the transformer's internal storage hardware wise). Then I ran a bunch of benchmarks and have been running it that way for about 24 hours and so far it feels great. Anyone is welcome to give it a try, and hopefully with help, suggestions and feedback from the community, we can all take as much advantage of this idea as possible.
Before I go any further I want to give credit to those who helped me so far, because without them I would still be completely clueless, and not only have they helped be accomplishing what I got so far, but thanks to them I've also learned a bunch of things I didn't know before. So here it goes:
Rayman - For suggesting the method for mounting /data to the external SD.
lilstevie - For helping me get the new kernel flashed right.
Turge - For showing me how to properly repack the kernel.
Parastie - For suggesting doing the same thing to /cache (working on that now).
dagrim1 - For SQL patch and for suggesting a temporary remount (even though it didn't work it was a good thing to try).
_motley - For all his work on his awesome kernel.
_________________________________________________________________________________________________
Updates:
Update 1 (08-01-2012 File boot-data+cache+internal-AOKP6.1base.zip) :
Now both /data and /cache are moved to the external SD card. This means you need a third partition mmcblk1p3 in order to use this modification.
It will also mount the internal storage (previously inaccessible) to /mnt/sdcard_internal
It also attempts to (fail at this point) to mount the internal sd partition (what used to be /sdcard) to /sdcard/Internal_SD (which is why you will always see that folder get created but stay empty). If anybody knows how to make it work please advise.
Modified Lines:
init.cardhu.rc
Code:
# TweakerL MOD > original mount = mmcblk0p8 /data | mmcblk0p3 /cache
mount ext4 /dev/block/mmcblk1p2 /data wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
mount ext4 /dev/block/mmcblk1p3 /cache wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
# TweakerL MOD > added mounts for internal storage
mkdir /mnt/sdcard_internal 0000 system system
mount ext4 /dev/block/mmcblk0p8 /mnt/sdcard_internal wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
# TweakerL MOD > give access to internal SD from /sdcard
mkdir /data/media/Internal_SD 0755 media_rw media_rw
mount /mnt/sdcard_internal/media /data/media/Internal_SD wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
Update 2 (08-01-2012 About backing up/restoring in recovery) : - READ UPDATE 5
One thing that worried me was that by using this mod people wouldn't be able to backup their data partition properly, but now I know that it's possible to do it. It will only work on TWRP though since it has basic terminal access and keyboard. To do it, go into Advanced > Terminal and in there type:
umount /dev/block/mmcblk0p8
mount /dev/block/mmcblk1p2 /data
And until you reboot, any backup/restore should use the external SD data partition instead of the internal. The same should be doable with the cache partition in case you want to backup/restore that.
Update 3 (08-02-2012 File flashme-kernel-motley305-aokp-data+cache2SD.zip) :
Put together a flashable zip that will install motley's 3.0.5 aokp kernel using this mod. Works like a charm so far though I only tried flashing on TWRP. Also, internal storage can be accessed in /data2 and internal sd can be accessed in /sdcardi . Current changes are as follow:
Code:
# TweakerL MOD > move /data and /cache to external SD card || original mount = mmcblk0p8 /data | mmcblk0p3 /cache
mount ext4 /dev/block/mmcblk1p2 /data wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
mount ext4 /dev/block/mmcblk1p3 /cache wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
# TweakerL MOD > create mount for internal storage
mkdir /data2 0000 system system
mount ext4 /dev/block/mmcblk0p8 /data2 wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
# TweakerL MOD > symlink internal sd to a couple of easily accessible locations
symlink /data2/media /mnt/sdcard_internal
symlink /data2/media /sdcardi
Update 4 (08-03-2012 File boot-cm10-unofficial-data+internal.zip) :
Running the unofficial CM10 (no cherrypicks one) using this mod and so far it's pretty amazing. The rom itself is pretty stable and even snappier with /data mounted to external SD. Benchmarks are at the bottom. Current modifications:
fstab.cardhu:
Code:
#TweakerL MOD > Move /data to external SD and internal /data to /data2
/dev/block/mmcblk1p2 /data ext4 rw,nosuid,nodev,noatime,user_xattr,acl,barrier=1,journal_async_commit,nodelalloc,data=writeback wait
/dev/block/mmcblk0p8 /data2 ext4 rw,nosuid,nodev,noatime,user_xattr,acl,barrier=1,journal_async_commit,nodelalloc,data=writeback wait
init.cardhu.rc:
Code:
# TweakerL MOD > create mount for internal storage
mkdir /data2 0000 system system
mount_all /fstab.cardhu
# TweakerL MOD > symlink internal sd to a couple of easily accessible locations
symlink /data2/media /mnt/sdcard_internal
symlink /data2/media /sdcardi
Update 5 (08-03-2012 About backing up/restoring in recovery) :
So after doing some tests, and paying more attention to TWRP, I noticed something rather useful:
When you have this mod enabled, or whenever you have a mmcblk1p2 partiion, TWRP will have the sd-ext menu enabled. This means that to backup your data you can simply backup the sd-ext partition and to restore your data you can simply restore your sd-ext partition. No need to worry about manually switching the mount point for /data in recovery. I guess it was a whole lot easier than I thought.
Also congratulations and thanks to everyone who has contributed with this so far.
WE MADE IT TO FRONT PAGE ON XDA (08-03-2012)
_________________________________________________________________________________________________
Requirements:
There are a few things you will need to do in order for this to work right for you, and a couple of things you'll have to research before you even try it.
#1. Obviously, you have to be rooted/unlocked because you're not gonna be able to change much around otherwise.
#2. You MUST repartition your external SD. The kernel I've put together so far WILL ONLY mount /data to mmcblk1p2, which basically says "mount /data to the second partition in the external SD." also, the ramdisk expects that partition to be ext4, so essentially:
Make sure you have an external SD with at least two partitions and that the second partition is formatted to ext4. I personally use Gparted to repartition my stuff, but feel free to use whatever rocks your boat. Even if you're on windows you can still use gparted by using virtualbox, so I'm not gonna go look for a different windows solution.
#3. This is the research part... This will be beneficial or detrimental to each user depending on the SD card used. If you have a slow SD card this probably will do you no good. However, just because you have a class 10 SD card, that doesn't mean it will benefit you either. On my own research I have found that some class 6-10 SD Cards have extremely slow random write speeds, so if you happen to have one of those, even if it's a class 10, this might not be for you. This means that you're gonna have to do some research to find out if your SD Card will benefit you or not. You can always just give it a try, as far as I know this is entirely reversible, how easy or hard being just a matter of how bad you mess up on meeting the requirements and following the instructions.
#4. At this point (07-30-2012) I'm doing all this stuff using the AOKP milestone 6.1 kernel as base for my modified kernel, so if you're not using AOKP milestone 6.1, flashing my kernel might borke your system. You've been warned, feel free to proceed otherwise at your own peril.
_____________________________________________________________________________________________________________
Installation:
#1. Download attached file (boot-data2SD-AOKP6.1base.zip) and extract it to the root of your internal storage (/sdcard).
#2. Open a terminal.
#3. Type the following:
Code:
su
dd if=/sdcard/boot.blob of=dev/block/mmcblk0p4 bs=1
#4. Wait for it to complete.
#5. Reboot.
Upon rebooting you will know that it worked because it will look just as if you just flashed a new rom, that is, you'll get the device setup screen (assuming that the tablet booted at all lol). If you're planning to use TB to restore your apps, you'll probably want to copy the TB folder to your external SD's first partition so that you can copy it back once you're done with the device setup (at this point you will have no access - unless you manually mount it - to your internal storage).
_______________________________________________________________________________________
Reverting:
Follow the same exact steps for installation but use boot-default-AOKP6.1.zip instead.
_______________________________________________________________________________________
Optional:
#1. If you want to have access to everything you had on your data partition in the new data partition, you'll have to clone everything from one to the other. To do this, make sure that your new data partition (the one in your external SD) has enough storage space to fit everything you currently have in your data partition (the one in your internal storage). Then run the following command in your terminal.
Code:
dd if=dev/block/mmcblk0p8 of=dev/block/mmcblk1p2 bs=4096 conv=notrunc,noerror
BEWARE that if you have a lot of stuff this can take quite a while and even though I've read a way of getting the progress for this in Linux I'm not sure that you can check the progress on Android.
_______________________________________________________________________________________
Next steps in development:
#1. Move /cache as well.
#2. Find out what happens with recovery backups when the partitions are changed.
#3. Attempt to apply mod to motley's kernel.
#4. Create a script that is run on boot to eliminate need for replacing the kernel.
#5. With help from the community, find the best SD Card for this.
#6. Run the modified system for a while to have a good feel for performance benefits
#7. Come up with other interesting uses for this other than getting better I/O (maybe an easy - kinda easy - way to dual boot with ubuntu, maybe other stuff, dunno).
_______________________________________________________________________________________
How can I set my kernel to do this?
I didn't do a whole lot, and it's not like I want it to be a secret, so as I modify things I'll try to keep the steps listed here so that anyone modifying their own kernel who would like to try this modification can go ahead and do it.
You'll need to know how to unpack/repack a kernel. Turge has a SUPER EASY explanation here on how to do it on windows (I'll pack together the necessary binaries for linux later, maybe).
Mount /data to the second partition in your external SD (formatted as ext4 filesystem):
After unpacking the kernel navigate to the folder that has the ramdisk and open it
(DON'T USE ANY ASCII BASED TEXT EDITOR BECAUSE IT WILL PROBABLY MESS THINGS UP I USE NOTEPAD++)
Around line 26 change:
Code:
mount ext4 /dev/block/mmcblk0p8 /data wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
to
Code:
mount ext4 /dev/block/mmcblk1p2 /data wait noatime nodiratime nosuid nodev nodelalloc,errors=panic
_______________________________________________________________________________________________________
SD Cards tested:
Samsung 32GB Class 10 MicroSDHC High Speed Memory Card - Very Good Results
SanDiskĀ® microSDHCTM 8GB Memory Card - Very Good Results
"Either way, with this mod, the tablet feels like it should have right from the start. It's speedy and responsive, and apps being installed don't stall the system." - Turge - Post #59
_______________________________________________________________________________________________________
Benchmarks:
/data mounted to mmcblk0p8 (Internal Storage):
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
/data mounted to mmcblk1p2 (External SD):
RL Benchmark WITHOUT dagrim1's sql patch as per request:
/data mounted to mmcblk0p8 (Internal Storage):
/data mounted to mmcblk1p2 (External SD):
*Important thing to note: When running the benchmark with data in the internal SD it was about 220 seconds in the first run, then about 180, then about 130 and finally 118; whereas running it from the external SD was consistenly between 63 and 65 seconds every time. I think this more than proves that A) Asus used a cheap I/O storage, B) No matter what software changes are made, more than likely running the rw partitions from a better I/O storage, i.e. an external SD is a good idea.
As promised here are benchmarks on a JB rom (Unofficial CM10). Also sorry it took me a while to get these, I was going to use eos3 but I started getting random reboots. Then I decided to try cm10, and I messed up a flash and had to redo a bunch of things. Anyway, the only change here is the mod itself (no custom kernel or anything). Though one thing to note is that I moved /cache back to the internal partition after some thought that this allows /data and /cache to be written at the same time to different locations thus lowering the bottleneck.
/data mounted to mmcblk0p8 (internal storage):
/data mounted to mmcblk1p2 (external storage):
Now, as you can see, JB did bring a major improvement to I/O, bringing the benchmark down from about 115sec to 68 (almost reaching the modded ICS at 60 seconds). But as I expected, better software works better on better hardware and now the modded JB is running at 50 seconds instead of 60. Next I'm going to put dagrim1's sql patch and see how low the benchmark goes. Also will be posting the modded blob in just a little bit for anyone who wants to use it on CM10.
We don't have sd-ext it's an old trick when phones had very little /data partitions, you have the possibility to create a sd-ext partition on an external sdcard and mounting it as a secondary data. (like opt partition on Linux).
To see what block device is data just run 'mount' command in terminal emulator. I don't have my device here.
sdcard cache is already set to 2048 if I'm correct.
Your script would mean creating a sd-ext partition on an external sdcard, modify fstab to have it correctly mounted then applying the script.
Not really easy for common users.
I would rather look at kernel drivers (not I/O schedulers but drivers handling with file system format) but it's quite a hard work.
Hmmm...
Was talking to Rayman and it doesn't actually seem that hard to do... Just gotta change the init.cardhu.rc in the ramdisk to mount /data to /dev/block/mmcblk1p2 instead of /dev/block/mmcblk0p8
The thing is, that while I know every step that I have to take to get it done, I haven't used linux in forever and quite honestly I couldn't even compile blobtools right now if I wanted to to extract the ramdisk from the boot blob to make the necessary change... so yea anyone who knows how to edit a kernel should be able to do it, and then just repack it as a blob... I'll probably look into it later, but if anyone wants to type the terminal commands for to to get/compile blobtools I'll appreciate it...
As in just a mount of data to mmcblk1p2?
Would a temp solution (just to check if it works) be to remount data manually? (Tried it, to mmcblk1p1 btw since 1p2 didn't seem to exist for me, but it still mounts to mmcblk0p8.
Using:
mount -o remount,rw -t ext4 /dev/block/mmcblk1p1 /data
(as su in terminal)
dagrim1 said:
As in just a mount of data to mmcblk1p2?
Would a temp solution (just to check if it works) be to remount data manually? (Tried it, to mmcblk1p1 btw since 1p2 didn't seem to exist for me, but it still mounts to mmcblk0p8.
Using:
mount -o remount,rw -t ext4 /dev/block/mmcblk1p1 /data
(as su in terminal)
Click to expand...
Click to collapse
Reason why mmcblk1p2 didn't work is because you have to repartition the sd card to have an ext4 partition... personally what I did was take my 32gb sd card and have the first partition as a fat32 partition for storage and set the rest to an ext4 partition... also, you have to do that because the /data partition is already expected to be an ext4 partition on most of the current ROMs... Trying to set it without doing that most likely won't work.
Also, another thing that's important is that for this to be beneficial you have to have an SD Card with higher random write speed than your internal storage speed... my internal storage speed is about .25 mb/s and my sdcard is about 1.5mb/s so there should be a big difference... Oh and if you happen to have a class 10 sdcard that doesn't necessary mean that it has high random write speed... you actually have to go look up the specs or run benchmarks on it.
TweakerL said:
Reason why mmcblk1p2 didn't work is because you have to repartition the sd card to have an ext4 partition... personally what I did was take my 32gb sd card and have the first partition as a fat32 partition for storage and set the rest to an ext4 partition... also, you have to do that because the /data partition is already expected to be an ext4 partition on most of the current ROMs... Trying to set it without doing that most likely won't work.
Also, another thing that's important is that for this to be beneficial you have to have an SD Card with higher random write speed than your internal storage speed... my internal storage speed is about .25 mb/s and my sdcard is about 1.5mb/s so there should be a big difference... Oh and if you happen to have a class 10 sdcard that doesn't necessary mean that it has high random write speed... you actually have to go look up the specs or run benchmarks on it.
Click to expand...
Click to collapse
Thanks, makes sense yeah... will have to check if it's worth the hassle for now. Not at this moment anyway, but interesting concept...
Stuck... again...
So I figured how to unpack the boot.blob, then unpack the boot.blob.LNX, then decompress the ramdisk... made the necessary change to init.cardhu.rc... compressed the ramdisk to the same format it was before, repacked the boot.blob.LNX, repacked the boot.blob... dd if=blob of=dev/block/mmcblk0p4 seek=28 bs=1 ... and ... nothing... reboot and where you're supposed to get the quick progress bar nothing seems to happen... I'm assuming I messed up on the recompressing ramdisk/packing the boot.blob... but I'm not sure how...
Anyway... I'll post exactly how I did it tomorrow so maybe someone with more experience can help me figure out where I messed up...
But so far, I wanna say thanks to rayman and lilstevie for all the help they've given me so far with this idea.
TweakerL said:
... compressed the ramdisk to the same format it was before, repacked the boot.blob.LNX, repacked the boot.blob... dd if=blob of=dev/block/mmcblk0p4 seek=28 bs=1 ...
Click to expand...
Click to collapse
Just wondering, why did you choose to use seek=28?
I believe the TFP will need the first 28 header signature to be there in order to flash through the staging paritition (p4).
Your other option would be to flash using fastboot:
1. If you've installed the AndroidRoot.mobi bootloader (if you have nvflash), then you can directly flash the boot.blob.LNX file, as this is a raw image.
fastboot -i 0x0b05 flash boot boot.blob.LNX
2. If you don't have AndroidRoot.mobi bootloader, then I suggest you get NVFlash working first and get a backup... if not, you can use the following to flash the blob:
fastboot -i 0x0b05 flash boot blobfileyou'vecreated
3. Use fastboot to flash to the staging partition:
fastboot -i 0x0b05 flash staging blobfileyou'vecreated
TweakerL said:
So I figured how to unpack the boot.blob, then unpack the boot.blob.LNX, then decompress the ramdisk... made the necessary change to init.cardhu.rc... compressed the ramdisk to the same format it was before, repacked the boot.blob.LNX, repacked the boot.blob... dd if=blob of=dev/block/mmcblk0p4 seek=28 bs=1 ... and ... nothing... reboot and where you're supposed to get the quick progress bar nothing seems to happen... I'm assuming I messed up on the recompressing ramdisk/packing the boot.blob... but I'm not sure how...
Anyway... I'll post exactly how I did it tomorrow so maybe someone with more experience can help me figure out where I messed up...
But so far, I wanna say thanks to rayman and lilstevie for all the help they've given me so far with this idea.
Click to expand...
Click to collapse
I've repacked the boot.img for the Prime before to add init.d support so I'll post my method and the files needed in a few minutes once I get to work. It'll involve getting cygwin installed (with Perl support I believe) if you're on Windows.
Would it be better to move cache and maybe dalvik cache (assuming the SD random read/write is faster then internal memory) ? Since you're only moving data and leaving cache on internal, that'll still hit the issues of having bad IO. Moving cache (which I believe would have more random access) I think would be better.
Thoughts?
dagrim1 said:
As in just a mount of data to mmcblk1p2?
Would a temp solution (just to check if it works) be to remount data manually? (Tried it, to mmcblk1p1 btw since 1p2 didn't seem to exist for me, but it still mounts to mmcblk0p8.
Using:
mount -o remount,rw -t ext4 /dev/block/mmcblk1p1 /data
(as su in terminal)
Click to expand...
Click to collapse
Thanks for the idea, I tried to do that but nothing seemed to happen (checking on file manager /data partition is still taking the same amount of space as it did before). It would've been a really good way of testing this whole thing though
kokopuphz said:
Just wondering, why did you choose to use seek=28?
I believe the TFP will need the first 28 header signature to be there in order to flash through the staging paritition (p4).
Your other option would be to flash using fastboot:
1. If you've installed the AndroidRoot.mobi bootloader (if you have nvflash), then you can directly flash the boot.blob.LNX file, as this is a raw image.
fastboot -i 0x0b05 flash boot boot.blob.LNX
2. If you don't have AndroidRoot.mobi bootloader, then I suggest you get NVFlash working first and get a backup... if not, you can use the following to flash the blob:
fastboot -i 0x0b05 flash boot blobfileyou'vecreated
3. Use fastboot to flash to the staging partition:
fastboot -i 0x0b05 flash staging blobfileyou'vecreated
Click to expand...
Click to collapse
I used seek=28 out of despair and by lilstevie's suggestions... dd with or without seek had the same exact result, the staging just ignoring the whole thing lol...
Sounds like a plan (flashing with fastboot)... I've got one dumb question though before I do that (and yea i've got nvflash setup and all the backups and stuff). How do I actually go about restoring the system with NVFLASH if I go and borke the system ? XD
Turge said:
I've repacked the boot.img for the Prime before to add init.d support so I'll post my method and the files needed in a few minutes once I get to work. It'll involve getting cygwin installed (with Perl support I believe) if you're on Windows.
Click to expand...
Click to collapse
That would be much appreciated, I don't mind steps for windows or linux, I'll go either way
Parastie said:
Would it be better to move cache and maybe dalvik cache (assuming the SD random read/write is faster then internal memory) ? Since you're only moving data and leaving cache on internal, that'll still hit the issues of having bad IO. Moving cache (which I believe would have more random access) I think would be better.
Thoughts?
Click to expand...
Click to collapse
I agree that moving the cache is a good idea, one of the main reasons why I'm testing with /data though is that it will be much easier to have solid evidence of whether this works or not that way since all the benchmark apps seem to benchmark on the /data partition. I know benchmarks aren't real world results, but if I can run benchmarks on the same partition and it's 5 times faster on the SD card than on the internal memory, I think it should mean something. After that, if there are positive results, I'm thinking of moving both /data and /cache partitions and run that way for a while to see how well it performs, and then to run with just the /cache moved and see how that performs.
Turge said:
I've repacked the boot.img for the Prime before to add init.d support so I'll post my method and the files needed in a few minutes once I get to work. It'll involve getting cygwin installed (with Perl support I believe) if you're on Windows.
Click to expand...
Click to collapse
Here are the steps for repacking the boot.img. Some involve running the commands via cygwin, others involve running them via the Windows Command Prompt.
The instructions for installing cygwin, extracting and repacking the boot.img were found here: http://www.freeyourandroid.com/guide/extract-edit-repack-boot-img-windows
Once you have setup cygwin, extract the attached files in a folder under your "home" folder in cygwin.
copy boot.blob to the same folder and run the following via the Windows Command Prompt to extract the boot.img from the boot.blob:
Code:
BlobUnpack.exe boot.blob
ren boot.blob.LNX boot.img
From the cygwin bash terminal window, switch to the same folder and run the following to extract the ramdisk from the boot.img:
Code:
./extractboot boot.img
You now have an out/ramdisk folder that contains the files you want to edit.
Once done, repack the ramdisk and kernel into boot_new.img with the following command (via cygwin once again):
Code:
./packboot
then from the Command Prompt repack boot_new.img into boot2.blob using the following:
Code:
blobpack -s boot2.blob LNX boot_new.img
You can now flash the boot.blob to the staging partition via a command in updater-script:
Code:
package_extract_file("/boot.blob", "/dev/block/mmcblk0p4");
or by using adb while in recovery/android:
Code:
dd if=/sdcard/boot2.blob of=/dev/block/mmcblk0p4
Did anyone think of running iotop? If we know what part of /data is contributing to the stalls, maybe an interesting idea would be to just mount that part of the tree on SD?
tyvm will get on it now, will report back any results
Sent from my Transformer Prime TF201 using Xparent SkyBlue Tapatalk 2
what's iotop?
Though regardless, the problem I'm trying to deal with is the fact that apparently, the storage hardware in the Prime has limited I/O capabilities, namely random write speeds, regardless of software. Because of this the stalls are at least partially caused by the "where" the /data is rather than the "content" in the /data.
Sent from my Transformer Prime TF201 using Xparent SkyBlue Tapatalk 2
TweakerL said:
what's iotop?
Click to expand...
Click to collapse
ffs. Why do I bother?
tshoulihane said:
ffs. Why do I bother?
Click to expand...
Click to collapse
You know, I can just google it, but the fact that you care enough to post your opinion but not enough to explain it is the kind of mentality that keeps people who could potentially contribute to the community from doing so because they have to go research all over the internet, possibly going through bad information, for something that might be very simple. Read a few posts up and you'll see the right kind of mindset. Turge could've just*given some halfassed response and sent me on a wild goose chase but instead he took the time to explain in a way that anyone with any amount of knowledge could understand...
And I hope that since you can't bother to give an useful response, that you can't bother wasting you "precious time" justifying and complaining about how people ask questions that they could just look for elsewhere...
Hello everyone!
Is it possible to enlarge free space on /osh by moving the biggest directory (/osh/usr/share) to /preinstall directory to symlink/mount it to previous location?
Thanks!
It should be possible, if you do it right.
Well, something is not right. I moved /usr/lib to /preinstall and symlinked it. Everything is fine!.. until a reboot
I changed /osh/ubuntu.sh, added remount lines from Gentop
/bin/mount -o remount,rw /
/bin/mount -o remount,rw /preinstall
Click to expand...
Click to collapse
but after reboot /preinstall is always "Device is busy".
Can someone help me? This is just a great possibility to get more space for webtop without SD - and it works much faster! If I could free some more space via uninstalling unused apps - I could even install OpenOffice =)
I am told that android partitions are somewhat special/different than what you see on standard linux hard drives.
Maybe an expert can step forward and point us to some good information on how android does things, until then I think trial & error is the only option.
You could try: /bin/mount -o rw,remount /dev/block/mmcblk0p17 /usr/lib
One other thought, it may be possible to create a fstab entry instead of putting a mount command in /osh/ubuntu.sh
tamuin said:
I am told that android partitions are somewhat special/different than what you see on standard linux hard drives.
Maybe an expert can step forward and point us to some good information on how android does things, until then I think trial & error is the only option.
You could try: /bin/mount -o rw,remount /dev/block/mmcblk0p17 /usr/lib
One other thought, it may be possible to create a fstab entry instead of putting a mount command in /osh/ubuntu.sh
Click to expand...
Click to collapse
That's a good idea. Will write back in minutes!
Hi. If you really need more space, best way is to use WebtopToSD apk. I have 14GB for osh with a linuxdisk chroot and it works great.
Send from my Atrix 4G
tamuin said:
I am told that android partitions are somewhat special/different than what you see on standard linux hard drives.
Click to expand...
Click to collapse
Kinda. Yes, the partition layout and partition handling is unusual and unconventional (at least compared to the PC world), but the partition contents (ie. the filesystem) is perfectly normal, exactly what you'd expect to find.
As far as this idea goes, I'd recommend not using the preinstall directly but instead creating a folder on preinstall dedicated to osh. So probably something like this:
Code:
#-- just the first time
mkdir -p /preinstall/osh-lib
cp -a /osh/usr/lib/* /preinstall/osh-lib
rm -rf /osh/usr/lib/*
#-- every time
mount --bind /preinstall/osh-lib /osh/usr/lib
This is just an idea, though it is completely untested.
jisse44 said:
Hi. If you really need more space, best way is to use WebtopToSD apk. I have 14GB for osh with a linuxdisk chroot and it works great.
Send from my Atrix 4G
Click to expand...
Click to collapse
Of course I know that techique =) My goal is to build small and usable Webtop without any SD cards
ravilov said:
Kinda. Yes, the partition layout and partition handling is unusual and unconventional (at least compared to the PC world), but the partition contents (ie. the filesystem) is perfectly normal, exactly what you'd expect to find.
As far as this idea goes, I'd recommend not using the preinstall directly but instead creating a folder on preinstall dedicated to osh. So probably something like this:
Code:
#-- just the first time
mkdir -p /preinstall/osh-lib
cp -a /osh/usr/lib/* /preinstall/osh-lib
rm -rf /osh/usr/lib/*
#-- every time
mount --bind /preinstall/osh-lib /osh/usr/lib
This is just an idea, though it is completely untested.
Click to expand...
Click to collapse
Thank you for your ideas.
So, I must make a conclusion:
1. I forgot to disable load_pia.sh in /system via ADB/Terminal
Code:
$ su
# cd /
# mount -o remount,rw /dev/block/mmcblk0p12 /system
# mv /system/bin/load_pia.sh /system/bin/load_pia.sh.disabled
This prevents mmcblk0p17 mounting to /preinstall
2. I used webtop2sd's mount and mount.orig - and added /preinstall mounting there just befor last mounting attemps of ubuntu.disk
After all everything works like a charm
Uninstalled most of apps, used gnome-appearance-properties to change metacity and gtk2 themes, saved that theme as my own, uninstalled every other theme... The only cons of this techique - still no enough of free space to install OpenOffice, and I decided:
1. to stop with this experiment - as everithing works as I expected;
2. not to symlink folders to /data for OpenOffice - because I will lose everything after first wipe.
If I could resize /osh or /preinstall partition via shrinking /data
I like your idea...
NemeZZiZZ said:
If I could resize /osh or /preinstall partition via shrinking /data
Click to expand...
Click to collapse
Changing the partition sizes has been other devices, see this post:
http://forum.xda-developers.com/showpost.php?p=22157605&postcount=25
I asked if anyone had tried it with the Atrix 4G in this post:
http://forum.xda-developers.com/showthread.php?t=2207918
...but I was strongly cautioned against it, I still might try it someday when I have the time.
Thanks for the info on what you did.
Hello! I already read that before, and I tried to "parted" mmcblk0 - but no success: as I remember, I can't get partition list because of error, and after googling that error I concluded, that partitions are made with error or overlapped.
Hello everyone i was using a i9300 for a quite while now and ive been changing roms and doing all things i could with it but, now ive seen this talk about f2fs and that its better than ext4 is that true and does it work on i9300? [emoji1] im a noob so sorry if this post already exists
its work, is better but you need kernel that use this,
i formated in twrp that partitions:
mkfs.f2fs /dev/block/mmcblk0p8
mkfs.f2fs /dev/block/mmcblk0p10 (not sure if /preload needed )
mkfs.f2fs /dev/block/mmcblk0p12
Is there any kind of tutorial if you can link me
twrp terminal write that commands and reboot
be carefull this mkfs.f2fs /dev/block/mmcblk0p12 destroy all data on sdcard (photos ect. in phone memory)- make backup
mmcblk0p8 is /cache
mmcblk0p12 /data include /sdcard
you may/can check layout partitons befor do anything - better do that:good:
exe98123q said:
twrp terminal write that commands and reboot
be carefull this mkfs.f2fs /dev/block/mmcblk0p12 destroy all data on sdcard (photos ect. in phone memory)- make backup
mmcblk0p8 is /cache
mmcblk0p12 /data include /sdcard
you may/can check layout partitons befor do anything - better do that:good:
Click to expand...
Click to collapse
i have a problem i tried those commands and i get this error "error not available on mounted device"
hmm, unmount in twrp,
funny is that i can use make_ext4fs without unmount ahaha
edit.
confirm if working for you
exe98123q said:
hmm, unmount in twrp,
funny is that i can use make_ext4fs without unmount ahaha
edit.
confirm if working for you
Click to expand...
Click to collapse
Yea it worked thank
if anyone want change back - change mkfs.f2fs to make_ext4fs (if somebody dont know )
work with all partitions
/efs , /boot , /data /system /preload ect. - didnt test on bootloader partition