I am not responsible for anything you do to your phone. If this goes wrong, it's not my fault. Read the whole post, and the last few pages of the thread. This will get you up to speed. Backup everything! Twice. No, I'm not joking. Do a nandroid, then do a titanium backup.
Important note! Ext4 does NOT work with ClockworkMOD 2.5.x. Nandroid backups will not work unless you upgrade to CWM 3! (data2ext4)
Greetings, earthlings! I have got a new version for you! Almost. Read this: http://forum.xda-developers.com/showpost.php?p=11931210&postcount=341
Update 26/01/2011
Ok, so someone asked about continuing support for ext2. So I will. Ain't I nice. Both scripts are updated, and should have improved performance, as well as a bugfix With both you don't need to start over, just flash the zip and you're done. Backup anyway (of course).
EXT4 version:
Yes, ext4 is slower in benchmarks. No, it doesn't have a real world impact. Not that I can see anyway. As always feedback is welcomed. I really mean that, if your phone genuinely becomes slower, let me know.
The zip is named data2ext4-V4.zip
Instructions (new users):
Ensure that mmcblk0p2 isn't mounted anywhere. You can do this by running "mount|egrep mmcblk0p2". If that returns anything, the ext partition is mounted. Unmount it using "umount directory/that/mmcblk0p2/is/mounted/to". Most often it's mounted to /sd-ext; in this case run "umount /sd-ext"
Format the ext partition to ext4:
Code:
mke2fs -m0 -b4096 /dev/block/mmcblk0p2
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2
e2fsck -yf /dev/block/mmcblk0p2
tune2fs -o journal_data_writeback /dev/block/mmcblk0p2
tune2fs -O ^has_journal /dev/block/mmcblk0p2
Flash the attached zip and reboot to normal mode
Open up a terminal or use ADB to execute "data2ext --enable"
Reboot
Click to expand...
Click to collapse
Intructions (upgrading from ext2):
This should keep all your existing data. Back it up anyway
Disable data2ext
Upgrade to ext4 thusly:
Code:
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2
e2fsck -yf /dev/block/mmcblk0p2
tune2fs -o journal_data_writeback /dev/block/mmcblk0p2
tune2fs -O ^has_journal /dev/block/mmcblk0p2
Flash the attached zip
Enable data2ext
Click to expand...
Click to collapse
EXT2 version:
This is rather simpler to set up, but is not as safe. It is slightly faster though
The zip is named data2ext2-v7.zip
Flash the zip
ensure /dev/block/mmcblk0p2 isn't mounted anywhere
Format the ext partition to ext2 with a 4KB block size
Code:
mke2fs -m0 -b4096 /dev/block/mmcblk0p2
Run this:
Code:
data2ext --enable
Reboot and enjoy
Click to expand...
Click to collapse
1st boot will take a while, it's copying stuff across.
Java on my PC sucks (it won't work), and I still can't sign zips. You'll live, just toggle signature verification in CWM
Semi-disclaimer:
This is my first real foray into scripting. I am still learning, so this is not as good as it could be. I release this to you to give me an incentive to make it better. I still need to look into mount options and the like, I'm sure this can go faster. Once again, I would class this as beta quality.
What is data2ext?
The phones internal memory is divided into several partitions. The 3 key ones are /system, /data and /cache. The rest we don't need to worry about too much. /system is where the ROM lives. By default it's read only (regardless of S-ON or S-OFF). All the data on our phones (apps, app data, game progress and a few other bits and bobs) is stored on /data. We have a pitiful amount of storage on /data (about 190MB), so we quickly run out when installing apps. 1 solution is to move /data/app (this is where most of the apps are stored) to a partition on your SD card (formatted to ext). But the internal memory still fills up, as anything not in /data/app stays on internal (caches, data and shizz). Other solutions have arisen, like moving dalvik-cache there to the ext partition too. But with the advent of fast SD cards it became possible to move the whole data partition to the ext partition. So people did; this means that the internal memory is barely used (aside from a few bits here and there, they're symlinked back to their original location).
Click to expand...
Click to collapse
It ain't workin'!
Ok. Get a logcat, and use pastebin to paste it here. Then we might be able to work it out, ye?
To use logcat:
Download this and extract it to a known location. Navigate to that folder, and press SHIFT while right-clicking. In the menu there should be a "Open command window here" option. Click it. Now type "adb logcat". Press CTRL+C to end the output. Right click and press mark, then click and drag over all the text and hit ENTER. It's now copied to the clipboard. CTRL+V to paste it somewhere... To debug issues with this script I need the first 5-10 seconds of the boot process.
To make life easier, I need the bit between "--START OF SCRIPT, PASTE LOGCAT FROM HERE ON!--" and "I DON'T NEED ANY MORE OF THE LOGCAT!"
Click to expand...
Click to collapse
Changelog
Version 1
initial release
Versions 2 through 4 were internal testing ones
Version 5
Fixed dalvik-cache rebuild
Made more likely to work
EXT4(v3) version initial release
EXT4 V4
Improved performance
Bugfix (unmount /sd-ext if it exists)
EXT2 V7
Improved performance
Bugfix (unmount /sd-ext if it exists)
Hereafter I shall rename these to make managing this changelog easier
Click to expand...
Click to collapse
Credits:
BlaY0
Anyone who's ever made data2ext scripts. I looked at a few
Click to expand...
Click to collapse
signd version attached
edit: removed
nooob.
but could you also make just ap2sd for ext3 ?
Sent from my Legend using Tapatalk
Noob?! Meh, s'pose I am. What can you do, eh?
http://krikun.ru/2010/10/28/app2sd-for-cyanogenmod-6-x/
TheGrammarFreak said:
Noob?! Meh, s'pose I am. What can you do, eh?
http://krikun.ru/2010/10/28/app2sd-for-cyanogenmod-6-x/
Click to expand...
Click to collapse
i tried that one but doesn't work on gingerbread cm7
OlegKrikun :
"Now cm7 exp. builds not support run start up scripts from /etc/init.d =( when is fix, I publish app2sd for cm7"
noob=== my noob wish.
I don't like to ask questions, so I try to introduce myself into those new things. But I need a confirmation if my theories are correct
1. Google's app2sd is kinda stupid. It uses the normal fat partition on your SD, correct?
2. The a2sd linked here copies all the stuff from /data/app to /sd-ext/app and remounts /data/app to /sd-ext/app
So the Phone means the App is stored on the Phone Memory but in real its stored on the sd.
Do I have to wipe everything after flashing the script. What happens to apps that are currently moved to the SD (by Google Apps2SD). Can I just copy them "to phone" again and they are inside the sd-ext then?
3. Data2ext => Speedup because everything from /data is now on the extfs on SD. Apps are also included, as they are located in /data/app so its has a2sd integrated, right?
EDIT: Damn, now I have to ask a question...
What's stored inside the dalvik-cache? I don't know much about dalvik, thats my biggest problem with android ...
Is it good to move it also to sd-ext with the a2sd script?
fabi280 said:
I don't like to ask questions, so I try to introduce myself into those new things. But I need a confirmation if my theories are correct
1. Google's app2sd is kinda stupid. It uses the normal fat partition on your SD, correct?
2. The a2sd linked here copies all the stuff from /data/app to /sd-ext/app and remounts /data/app to /sd-ext/app
So the Phone means the App is stored on the Phone Memory but in real its stored on the sd.
Do I have to wipe everything after flashing the script. What happens to apps that are currently moved to the SD (by Google Apps2SD). Can I just copy them "to phone" again and they are inside the sd-ext then?
3. Data2ext => Speedup because everything from /data is now on the extfs on SD. Apps are also included, as they are located in /data/app so its has a2sd integrated, right?
EDIT: Damn, now I have to ask a question...
What's stored inside the dalvik-cache? I don't know much about dalvik, thats my biggest problem with android ...
Is it good to move it also to sd-ext with the a2sd script?
Click to expand...
Click to collapse
1. Correct
2. No wipe needed for a2sd or this data2ext. Any app on what the phone believes to be internal memory is in fact sd-ext
3. Correct
Dalvik-cache is a shedload of dex files, quite important. The bug with re-creating it on every boot isn't major enough for me to worry about for now, as I don't think it affects anything other than the startup time. I need to investigate this, so be careful if you use this mod. My worry is that it's due to data being lost somewhere
When I used a2sd I had dalvik-cache on the sd card, but then I have a fast SD card. It can slow things down.
Anyhoo, I would like this thread to be for testing data2ext, not asking questions about a2sd. I have made this to help me learn how these things work, so feedback is welcomed. If anyone has tested this on CM6 then please let me know. And can you also post feedback about the dalvik-cache issue.
gyroing said:
i tried that one but doesn't work on gingerbread cm7
OlegKrikun :
"Now cm7 exp. builds not support run start up scripts from /etc/init.d =( when is fix, I publish app2sd for cm7"
noob=== my noob wish.
Click to expand...
Click to collapse
/system/etc/init.d is where this is run from. It works on CM7
@Grammar,
thx for your work!!! it works very good on my phone. ext2(1 gb) partition as ext3 formatted. i have the "signed" zip from exicar(thx) installs....
lwiss
quadrant: 1686
card: 8gb class 6
rom-version: CM 7 | Gingerbread, 01/03
TheGrammarFreak said:
Anyhoo, I would like this thread to be for testing data2ext, not asking questions about a2sd. I have made this to help me learn how these things work, so feedback is welcomed. If anyone has tested this on CM6 then please let me know. And can you also post feedback about the dalvik-cache issue.
Click to expand...
Click to collapse
Sorry for my Off-Topic-Questions.
I'll try it for you on CM6.
How fast has it to be? I've got a 8GB Class 6 Card, is it enough?
EDIT: Note to myself, never read an article description on amazon on a second screen while writing a reply.
It's a class 4, I looked for a Class 6 on Amazon -_-
But I'll try it anyway..
lwiss said:
@Grammar,
thx for your work!!! it works very good on my phone. ext2(1 gb) partition as ext3 formatted. i have the "signed" zip from exicar(thx) installs....
lwiss
Click to expand...
Click to collapse
What version of CM? And it's not my work, it's BlaY0's. I just made his script work on CM
fabi280 said:
Sorry for my Off-Topic-Questions.
I'll try it for you on CM6.
How fast has it to be? I've got a 8GB Class 6 Card, is it enough?
Click to expand...
Click to collapse
It's not the most off-topic I've seen. Look at the CM experimental build thread . I also have 8GB class 6. I get 1600+
Stupid question. Where to enable data2ext in cyanogenmod settings?
What version of CM?
Click to expand...
Click to collapse
from ali ba (thx)
CM 7 | Gingerbread, 01/03 (with gapps)
lwiss
FUXAS said:
Stupid question. Where to enable data2ext in cyanogenmod settings?
Click to expand...
Click to collapse
If you don't even read the first post I'm not gonna help you. If I haven't made the point clear enough:
This is in testing. There is a major bug where dalvik-cache is re-built on every reboot. This is not a good thing. I would advise that you not use this unless you know what you're doing
fabi280 said:
Sorry for my Off-Topic-Questions.
I'll try it for you on CM6.
How fast has it to be? I've got a 8GB Class 6 Card, is it enough?
EDIT: Note to myself, never read an article description on amazon on a second screen while writing a reply.
It's a class 4, I looked for a Class 6 on Amazon -_-
But I'll try it anyway..
Click to expand...
Click to collapse
Class 4 is definitely too slow, at least on CM6.
I will not provide a Quadrant Benchmark because my Phone is waaay too slow now. It really lags everywhere.
First Start:
Code:
I//system/xbin/run-parts( 59): Initiating Data2EXT...
I//system/xbin/run-parts( 59): Waiting for SD card to settle...
I//system/xbin/run-parts( 59): Executing file system check...
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: 11/65664 files (0.0% non-contiguous), 4451/262144 blocks
I//system/xbin/run-parts( 59): Mounting /dev/block/mmcblk0p2 to /data...
I//system/xbin/run-parts( 59): EXT partition /dev/block/mmcblk0p2 mounted on /data...
I//system/xbin/run-parts( 59): First time initiation, copying files to EXT partition...
I//system/xbin/run-parts( 59): Data2EXT enabled...
I//system/xbin/run-parts( 59): Setting read-write /system overlay...
I//system/xbin/run-parts( 59): Checking for kernel aufs support...
I//system/xbin/run-parts( 59): No aufs driver present in kernel, trying to load aufs module...
I//system/xbin/run-parts( 59): Can not load aufs module, aborting...
Second start:
Code:
I//system/xbin/run-parts( 59): Initiating Data2EXT...
I//system/xbin/run-parts( 59): Waiting for SD card to settle...
I//system/xbin/run-parts( 59): Executing file system check...
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: Entry 'CheckinService.xml' in /data/com.google.android.gsf/shared_prefs (25081) has deleted/unused inode 25583. CLEARED.
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: Entry 'EventLogService.xml' in /data/com.google.android.gsf/shared_prefs (25081) has deleted/unused inode 25074. CLEARED.
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: Entry 'googlesettings.db-journal' in /data/com.google.android.gsf/databases (25087) has deleted/unused inode 25564. CLEARED.
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: 1834/65664 files (0.4% non-contiguous), 46535/262144 blocks
I//system/xbin/run-parts( 59): /dev/block/mmcblk0p2: 1834/65664 files (0.4% non-contiguous), 46535/262144 blocks
I//system/xbin/run-parts( 59): Mounting /dev/block/mmcblk0p2 to /data...
I//system/xbin/run-parts( 59): EXT partition /dev/block/mmcblk0p2 mounted on /data...
I//system/xbin/run-parts( 59): Data2EXT enabled...
I//system/xbin/run-parts( 59): Setting read-write /system overlay...
I//system/xbin/run-parts( 59): Checking for kernel aufs support...
I//system/xbin/run-parts( 59): No aufs driver present in kernel, trying to load aufs module...
I//system/xbin/run-parts( 59): Can not load aufs module, aborting...
I can send you the complete outputs for both starts (got em till the UI was visible)
EDIT: But is the Class4 Card fast enough to handle a2sd (maybe with Dalvik Cache)?
There are several factors affecting read/write speed to/from SD card not just class:
partition alignment
partition type
format options
mount options
readahead settings
etc.
Not going to try and use it yet, but I'm curious now. When using this, you're automatically having all of your apps on your sd card and the app2sd feature isn't needed anymore, right? And your phone gets a speed boost when using it?
m1schi said:
Not going to try and use it yet, but I'm curious now. When using this, you're automatically having all of your apps on your sd card and the app2sd feature isn't needed anymore, right? And your phone gets a speed boost when using it?
Click to expand...
Click to collapse
Apps on sd-ext = yes
Speed Boost, sometimes yes, sometimes its laggy as hell
Sent from my HTC Legend using XDA App
Stupid question. How do you guys get 1600+ in Quadrant on CM7?
For me Quadrant is not finishing tests due to the 3D graphics not working. But even if it'll work, I don't think I'd get so much. On CM 6.1 oc'ed to 787, I'd hardly get 1150. Is it just due to overclocking or this data2ext is speeding it up?
Sent from my Legend using XDA App
Hi all, Oleg Krikun was published app2sd and app2sd-dalvik for CM 7 01/03
I re-uploaded patch here: cm7_app2sd
and cm7_app2sd_dalvik
ktullanux said:
Hi all, Oleg Krikun was published app2sd and app2sd-dalvik for CM 7 01/03
I re-uploaded patch here: cm7_app2sd
and cm7_app2sd_dalvik
Click to expand...
Click to collapse
This has got nothing to do with this thread.
Due to a previous Odin ROM install, each time my Tab was restarting there was 3 apps automatically installed to /data/app (DioDict, PanzerPanic, InfeCCt).
There is a sneaky small hidden partition at /dev/block/mmcblk0p3, which gets mounted at startup by the Samsung recovery at /mnt/apk, and immediately disappears after it does its sneaky job ! Note that this has nothing to do with the stock init.rc on my euro Tab, as I use a self-made initramfs ramdisc where I can control most aspects of the boot process...it seems to be a recovery-only procedure (see the post below about the /preinstall mount).
I went to recovery, mounted mmcblk0p3 manually, and deleted the contents of /mnt/apk, problem sorted The "parted" command easily shows the partitions on the internal SD card, including this not-so-mysterious-anymore space.
As I build my own kernel and craft my own initramfs ramdisc, I added an fstab that gets activated in recovery mode only, so I have easy mount options for mmcblk0p{1,2,3} and all the other important partitions. I use /res/etc/fstab, based on the ClockWorkMod recovery folder structure (/system/etc gets sym-linked). Anyway, I digress.
I assume that hidden.rfs (when flashed with Odin) is destined to this hidden internal SD card partition, so I guess that Heimdall could be updated to support this particular use-case...or maybe not
Cheers, Dan
That's your pre install partition.
Code:
mkdir /preinstall
mount rfs /dev/block/mmcblk0p3 /preinstall nosuid nodev check=no
chown system system /preinstall
chmod 0771 /preinstall
is how it's mounted by init.rc. So, you can just remove it from that to prevent it from mounting too.
Ah, thank you for the clarification !
EDIT: I have never seen the preinstall directory on my Euro Tab, but I also admit that I didn't pay attention to the stock init.rc (which has now been overridden by my self-made initramfs). By the way, it's not RFS on my Tab, but vFAT.
Nothing to do with hidden.rfs then ?
How come the APK files never get deleted from this partition ? It should really be just a one-off install, right ? Otherwise, as it stands it is designed to interfere with my nicely cleaned-up system at each device reboot ! (and it is not controlled by the init.rc, but by the recovery process)
I noticed that partition too on my Verizon Tab. I don't want to mess with it though, I think it contains some files that Samsung uses to unbrick dead tabs at their repair center.
You can always just back it up with heimdall before you mess with it so you have a good restore.
/dev/block/mmcblk0p3 means???
So guys,
whats the meaning of /dev/block/mmcblk0p3 not found anyway
I got that message after flushing back and forth between froyo-GB to my Samsung I9003 device. I did rooting also at that moment.
According to your post earlier i assume that there is a way to fix this problem.
*sorry for the 'very' newbie question*
Any suggestion where i can start trying ??? (i've ask here but hopeless)
Hello,
I'm quite new in android development, so sorry for dumb question.
I have new GT-S6102 (because of dualsim setup) and I'd be quite happy with the stock firmware (S6102XXMA2) if it wasn't of the 160M memory. What I'm trying to do is to modify init.rc in bootimage to mount /data on 4G second partition of my SDCard instead of 160M /dev/stl11.
I'm using a Ubuntu 12.04 machine for my experiments.
I've copied /dev/block/bml7 from my phone using ADB, extracted it using abootimg.
First (and I hope that main) trouble is that when I try to update the boot.img (abootimg -u boot.img -r initrd.img), even without modifying the ramdisk, the resulting image has few different bytes near the beginning of the file. Anyway when I flashed it back to phone, it booted normally.
Then I unpacked the ramdisk (using steps from here) and modified init.rc:
Code:
mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev crypt check=no
# mount rfs /dev/stl11 /data nosuid nodev crypt check=no
I have a 32G uSD card with 28G FAT and 4G EXT4 primary partitions.
Then I've repacked it, made new boot.img, flashed with ODIN and it made a nice bootloop with Samsung bootanimation without usual sound.
What am I doing wrong?
Is this modification even possible?
Thanks for advice
P.S.
I've tried to extract the boot.img from S6102XXMA3_S6102DBTMA1_S6102XXMA2_HOME.tar.md5, but 7zip on Windows and TAR on linux complain that it isn't valid archive.
jelinek.01 said:
Hello,
I'm quite new in android development, so sorry for dumb question.
I have new GT-S6102 (because of dualsim setup) and I'd be quite happy with the stock firmware (S6102XXMA2) if it wasn't of the 160M memory. What I'm trying to do is to modify init.rc in bootimage to mount /data on 4G second partition of my SDCard instead of 160M /dev/stl11.
I'm using a Ubuntu 12.04 machine for my experiments.
I've copied /dev/block/bml7 from my phone using ADB, extracted it using abootimg.
First (and I hope that main) trouble is that when I try to update the boot.img (abootimg -u boot.img -r initrd.img), even without modifying the ramdisk, the resulting image has few different bytes near the beginning of the file. Anyway when I flashed it back to phone, it booted normally.
Then I unpacked the ramdisk (using steps from here) and modified init.rc:
Code:
mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev crypt check=no
# mount rfs /dev/stl11 /data nosuid nodev crypt check=no
I have a 32G uSD card with 28G FAT and 4G EXT4 primary partitions.
Then I've repacked it, made new boot.img, flashed with ODIN and it made a nice bootloop with Samsung bootanimation without usual sound.
What am I doing wrong?
Is this modification even possible?
Thanks for advice
P.S.
I've tried to extract the boot.img from S6102XXMA3_S6102DBTMA1_S6102XXMA2_HOME.tar.md5, but 7zip on Windows and TAR on linux complain that it isn't valid archive.
Click to expand...
Click to collapse
OK, so it seems that I´ve managed to work it out at last.
The unpacking and repacking of bootimage was all right, trouble was in updating only the init.rc and probably using ext4. What I have done:
I replaced all mentions of mounting /dev/stl11 on /data by mounting /dev/block/mmcblk0p2 (that was in files fota.rc, init.rc, init.charge.rc, res/recovery.fstab). In res/recovery.fstab I also changed formatting type from rfs16 to rfs32 so it supports my 4.5G partition.
Then I flashed the bootimg in my phone and formatted the data partition in recovery (that was the only way to make it rfs I've found).
Maybe it would all work with changing the format and mount type to ext4, but I hoped for as little modification as possible.
Now it reports 4.25GB free space after all my apps are installed, hurray .
I have just to remember to never boot it up without SDcard inserted. Maybe it would work as a possibility to borrow the phone to somebody with another card.
The boot.img came from S6102XXMA3_S6102DBTMA1_S6102XXMA2_HOME.tar.md5, if someone wants to try it, it is here . It probably wouldn't touch the original /data partition, so it might be possible to try it and undo it by flashing original boot.img. It just requires to have a second primary partition on SDcard and formatting it in recovery before first boot.
i didnt know to do that boot "compiling" like u did, quite good for you, im using cronmod int2ext , i have 850mb internal. i use 'pimp my rom' to get init.d support.