In short:
Is there a thread somewhere stating the pro's and con's of running Android from different types of "media" (SD, NAND, EXT2)?
If there is, please provide a link, I can't seem to find anything that isn't an unanswered question or small comments.
If there isn't, let this be a starting point for those looking for the answer to this question.
Longer:
I've seen this question pop up once and again but it might be that the topic is totally exhausted and people have stopped commenting on it. I can't seem to find an answer though; What are the pro's and con's of using NAND, EXT2, FAT32 or any combination of it?
I see a couple of installation alternatives and some I have been able to conclude myself but others not.
* Running from SD-card using HaRET
This option is the slowest in terms of Android performance. It has the added value of easily getting back to Windows Mobile by rebooting the phone, gaining easy access to the SD card and manipulation options.
* Running the system AND data on NAND
This option has in my view the fastest Android experience. Access to files on the SD card is a bit more cumbersome (there is the SD card split widget APK available but I have yet to see it working) and access to files for manipulation I can't comment on (haven't gotten to that yet).
* Running the system from NAND and data on EXT2
The performance seems almost as fast as the system+data on NAND. I have no idea about the added value of running anything from an EXT2-partition in the SD card but I'm guessing it will be slower. I have no idea if file access for manipulation is easier or not compared to the other options.
* Running the system AND data from EXT2
I have not tried this yet and cannot comment on it. Something tells me it will be slower than NAND because of SD card overhead.
* Running the system from EXT2 and data on NAND
I have not tried this yet and cannot comment on it.
Now, I've missed out on several of the installation options but I'll edit this post as soon as I get to investigating it further.
Any comments/experience/knowledge in this is greatly appreciated, as it can make things clearer as to what options to choose.
Well these are very good question and wanted to start a thread on this matter as well. I also could not find a strait answer anywhere.
I also want to know if there is an advantage using ext2 over fat32.
So, people out there having knowledge about this matter please share it.
Ext2 and Fat32 are both types of filesystem used on various different types of media, including SD card, Hard drives etc.
EXT2 is (one) of the native linux filesystems, and is fully supported in kernel, and is usually faster and more stable in that OS
FAT32 is the 32bit version of the old MSdos filesystem, used up to Windows 98, and still supported by windows machines, but slower and less stable than the native NTFS filesystem used by XP and above.
Nand is actually the type of flash ROM used by our devices, and not a filesystem as such, and running Android in Nand refers to where the information is stored, rather than the filesystem used to store it.
It's equally valid to say that we run WM in Nand also.
I think that in the case of Android EXT2 should be faster and more stable than fat32 since it's designed for Linux, and works better in that OS.
Zenity ik would like to thank you very much as this answers mij questions.
And i think this would many others aswell.
Don't forget - if you format your MicroSD to just EXT2 then you will make it very awkward to transfer files to/from the card on a Microsoft Windows based system.
This may, or may not be a problem for you.
Ultimately, the current ideal situation (IMHO) is to run your OS from NAND, and to store your data (music / movies / documents) on a FAT32 format MicroSD - as this enables you to swap the MicroSD card without turning off the device, and provides best cross-platform usability of the MicroSD for the purposes of transferring data to/from it.
Thank you all!
Thank you all for commenting! I will add your comments to the Android-wiki I'm building as this question could come back repeatedly from newcomers (and old ones who forgot )!
boli99 said:
Don't forget - if you format your MicroSD to just EXT2 then you will make it very awkward to transfer files to/from the card on a Microsoft Windows based system.
This may, or may not be a problem for you.
Ultimately, the current ideal situation (IMHO) is to run your OS from NAND, and to store your data (music / movies / documents) on a FAT32 format MicroSD - as this enables you to swap the MicroSD card without turning off the device, and provides best cross-platform usability of the MicroSD for the purposes of transferring data to/from it.
Click to expand...
Click to collapse
There is a program for allowing the mounting of EXT2 file systems on windows, however they are not signed. This is more problematic in Windows that are 64bit. The program is called 'ext2fsd' and you can get it from source forge. EXT2 is a better file system, and does not have the 4GB file size limit, and does not fragment (although on a SD card, this should not be an issue). EXT2 also has file permissions that Linux understands. Fat32 has no Access control file permissions.
I have just recently got polymod's eclair running with both system and data on ext2 partitions.
my question is...
I am just wondering what the boot order is...
and where(if possible) can it be changed?
system.img in the andboot folder VS system on partition.
I know it can be set in the installer. but lets say I had installed system on ext2 partition. and then later placed a system.img in the andboot folder.
can I swap between the two?
OK...
I figured it out myself,
You can use the installer to select boot options (Not just options to install)
so I have a system and data on partitons. (currently using)
and I also have a second build installed to .img files in the andboot folder. (for failsafe backup)
if I want to swap from one into the other
I enter installer and change the settings for the system and data to
their respective locations and then just QUIT.
I also still have a donut build in the android folder. as well as still running winmo.
quad boot system on my phone...LOL
Now thats a neat use of the installer, I think this find deserves it's own thread in fact, I'm certain others will find it useful
Tanks !
binlabin said:
* Running the system from NAND and data on EXT2
The performance seems almost as fast as the system+data on NAND. I have no idea about the added value of running anything from an EXT2-partition in the SD card but I'm guessing it will be slower. I have no idea if file access for manipulation is easier or not compared to the other options.
Click to expand...
Click to collapse
I've done some tries with this doing the partitioning from within android and then formatting the FAT32 partition from Windows 7 but the FAT32 partition doesn't work very well afterward. Really slow and sometimes crashes the explorer. Propably something to do with my SD-card. May try doing the partitioning and formatting from Linux to see if it works better.
Seems to me the main advantage of this option is to increase the size of available data storage which i suspect can become a limitation sooner or later in a pure NAND install.
EDIT: Now I've done it and gone NAND-System + EXT2-Data... Partitioned the SD-card from Ubuntu with gparted. Resized the FAT32 partition and created 3 primary EXT2 partitions. only the second (partition 3) should be used though with the setup I am using. It's charging right now so I haven't tried it out much yet but I will later on. However I noticed that I now have 171Mb free phone storage instead of 30-something that I had before (same apps installed).
EDIT2: Ran gparted again and shrinked the unused partition (partition 2) and expanded the data partition (partition 3) so I now have 369Mb free "Internal phone storage". Haven't noticed any speed differences between this and when I had data on NAND.
nand
By then one question:
If im install android in the NAND is more fast ready? But this process erase WM6?
Because now android work good in my HTC TYNT II but the camera and bluetooth not work and have one or two performance problems and for this dont like delete WM6 of my phone, and for this im use Android from my SD.
But look the NAND option because have a problems with the time live of my battery only lasts 5hours with android and SD.
Thanks for your help and cooperation
excellent thread which answers some questions that I had. Thanks to everyone who contributed. The only question remaining though and I have posted this elsewhere without getting an answer:
I partitioned a 2 gb sdcard with ~1.6gb Fat32 and the rest as a single Ext2. I selected system on nand and data on ext2 in the installer. After installation, it does show alot more memory for data as compared to data on nand, BUT I also have a data.img in andboot which is in the Fat32 partition, with a size around 250mb. The question is, is the data in that file or on ext2? If I backup data from installer, it creates a databackup.img in andboot with the same size as data.img. Seems to me the ext2 partition is just taking up space and not being used. Can anyone more knowledgeable shed some light on this? Thanks.
Not quite sure what is going on there, seems very counter-intuitive, I would have assumed that system on Nand, data on EXT2 would have installed the data partition to EXT2 on SD. This would seem not to be the case in this instance.
There are a few experiments you could try, if you are brave enough, since you may cause problems by trying any of these suggestions, which could mean a reinstall, I leave it to your judgement how to proceed
Ok firstly I assume you have a card reader, since you managed to partition and format the SD card in the first place. Remove the SD card, insert in card reader, delete the andboot folder, or the contents of the folder, ( may be wise to have a spare SD with either a winmo or android install handy at this point, just in case things go horribly wrong ).
Now with the cleaned SD, put it in the phone and boot, it should boot fine, IF the data is truly on the EXT2 partition.
That at least will answer one question, namely, where the heck is my data?
If this works fine, then I'd just put it down to some inner weirdness of android on non-native devices, if it fails then I'm wondering if your EXT2 partition may have problems, forcing the phone to dump it on the first available good partition, namely the FAT32 one.
Oh and if it does fail, you will have to reinstall, since your data will be toast.
Finally, good luck, I await with interest
As I recall, the install has the FAT32/Ext2 options incorrectly swapped. It has been this way for a while.
zenity said:
Not quite sure what is going on there, seems very counter-intuitive, I would have assumed that system on Nand, data on EXT2 would have installed the data partition to EXT2 on SD. This would seem not to be the case in this instance.
There are a few experiments you could try, if you are brave enough, since you may cause problems by trying any of these suggestions, which could mean a reinstall, I leave it to your judgement how to proceed
Ok firstly I assume you have a card reader, since you managed to partition and format the SD card in the first place. Remove the SD card, insert in card reader, delete the andboot folder, or the contents of the folder, ( may be wise to have a spare SD with either a winmo or android install handy at this point, just in case things go horribly wrong ).
Now with the cleaned SD, put it in the phone and boot, it should boot fine, IF the data is truly on the EXT2 partition.
That at least will answer one question, namely, where the heck is my data?
If this works fine, then I'd just put it down to some inner weirdness of android on non-native devices, if it fails then I'm wondering if your EXT2 partition may have problems, forcing the phone to dump it on the first available good partition, namely the FAT32 one.
Oh and if it does fail, you will have to reinstall, since your data will be toast.
Finally, good luck, I await with interest
Click to expand...
Click to collapse
Great idea, I'll try this on the weekend. I wont delete data though, I'll just rename andboot and backup data for good measure, because I want to be able to go back to the data by renaming it back if it doesn't work. I was also thinking if there is any way to get to the ext2 partition and read it... I'm on xp so I cant do it on my pc, and on the phone, I've looked around in astro n other file managers but cant see anything. But if the case is as golfnz34me points out, then I should just backup the data, and change the option to Fat32 in install and restore data. That should do the trick.
golfnz34me said:
As I recall, the install has the FAT32/Ext2 options incorrectly swapped. It has been this way for a while.
Click to expand...
Click to collapse
Thanks, will check this out. If its true, then great, more speed for my /data! I wonder how I missed this, been going through these forums regularly...
Ok I checked it out, and golfnz34me is correct it seems.
But now I found a new problem. I backed up data, and in the installer, set the data to SDCard, and tried to restore data. It gives various errors like
Code:
cannot determine filesystem size
failed
failed to format
...some other lines...
losetup: /dev/block/loop2: no such device or address
I created the partition with Paragon partition manager, and after getting this error I rechecked in PPM. I reformated the partition, but still get the error. In PPM the partition drive letter isnt assigned. Or, the partition isnt the active partition. Can one of those be the problem? The volume name is Ext2. Im not very experienced in partitioning etc, apart from normal ntfs partition for new hds in windows, so I didnt play with any options. I dont have a linux system either. Any got any ideas? Any help would be appreciated alot!
Not sure about using partition managers other than gparted, afaik most people are using the Gparted live cd if they don't have a linux install handy.
The errors all point to some sort of problem with the EXT2 partition, or it's formatting.
Also EXT2 partitions do not have drive letters, nor do they have to be active partitions.
Apps and data on SD card.
I cant seem to figure out how to make all the apps and other stuff install to the SD card. Do I have to partition the card into two partitions? or is there a way to install the system to Nand and make all the apps and data go to the SD card? Ive tried setting it to System on nand and data on SD partition but it says no partitions to install to or something.
Has anyone successfully reformatted either /sdcard or /sdcard/external_sd/ /emmc as ext3? I'm not talking about an Apps2SD partition, I'm talking about reformatting the whole volume as one partition, transparent to apps. I do not use Windows so I do not need interoperability, I am fine with ext filesystems.
My goal is to be able to use symlinks (not to mention a more robust filesystem) to redirect certain hard-coded items to store on a different storage volume than it defaults to, but symlinks are not permitted on vfat (FAT32) filesystems.
Thanks!
Anything that I look an answer for, is just not answered. :-(
I am looking for the same information. Wonder why the native ext file systems are not allowed, given that its a Linux kernel running.
You could format it to ext3 and see how it works. Worst case scenario is your phone will tell that sdcard to fu*k off. Given that our phones can and do read the ext format I'm sure you can do it. I'm just not sure how well it will work as far as mounting and such.
On top of that, Windows can read ext formats. You just need a program to do it. I use it all the time.
Thanks for reviving this thread. Surely there must be someone out there who has tried this, and I was hoping to hear from them before I gave it a go, but looks like I'll just have to give it a shot myself.
When I find the time to backup & wipe my sdcard to try and reformat & mount it, I'll report back here.
With my Galaxy Note N7000 I can format a USB Stick to EXT3, and the phone uses it perfectly well as USB Storage...
(rooted, w/w SpeedMod kernel)
Just thinking out loud....
I don't know if the ICS leak flashes change the partition table, but the way my phone is set up, there's 11 partitions:
p1: /efs
p2: /system
p3: /cache
p4: The "Internal SD"
p5: A mere 2MB. Mostly blank (long stretches of 00 or FF), except for <1KB of... something. Nothing jumps out at me in the hexdump. Could just be leftover garbage from Gingerbread.
p6: /data
p7: 16MB. Definitely something important here. Strings present suggest it's related to, if not part of, the bootloader, or perhaps download mode.
p8: 5MB: Looks like an Android bootimg. Recovery?
p9: 8MB: Pretty sure this is where the Linux kernel and rootfs for the actual system resides.
p10: 8MB: Completely blank.
p11: 500MB. An ext4 filesystem containing only the Asphalt 6 video and screenshots that you'd find on the "Internal SD" of a freshly Odin'd Glide.
I wonder if p5 actually serves a purpose; if not, we could theoretically merge it, p4, and p6 into one gigantic /data partition. That may be a bit more useful for those running with large microSD cards.
Things we need to look at:
One, bootloader. Does it look for things at static offsets? Does it read the partition table?
Two, recovery. I'm guessing CWMR will read the partition table, but is it expecting certain partitions to contain certain things?
In both cases, it shouldn't be anything we can't work around by filling out partition numbers or stretches of NAND with blank partitions. But we'll need to know what the offsets need to be.
Just putting the thought out there.
PIT & GPT, custom PIT
Actually the last PIT partition contains GPT data, and what we've seen inside the booted system comes out of GPT. But there is unallocated ~11Mb (according to GPT) before the first partition, and the PIT contains info about that!
cross-ref my thread: [Q] mmcblk0 Partiton table type (sgh-i927)
For now I'm looking a way of crafting my custom PIT-file, did you see any info about that?
I know I'm late to the party and this was probably already discussed, but I couldn't find it with search. Has anyone considered converting the inc to a data media device (http://www.xda-developers.com/android/what-is-a-data-media-device/)? I've seen this done with other devices (e.g. hp touchpad). I'd be nice to be able to use the EMMC partition for storage and data. I know there is ext4all but I still seem to run out of space quickly since dalvik-cache is half of /data.
Not sure if hboot will let you combine partitions to do what you want; however, lvm can probably accomplish what you're hoping to achieve but it takes quite a bit of effort to setup.
Sent from my One using Tapatalk
I wasn't necessarily thinking we need to combine any partitions. Just don't mount the existing /data and /data/data partitions, and mount the EMMC partition as /data with an emulated sdcard at /data/media. I think this is how the Samsung phones work; you have both "internal" and "external" sdcards. Seems like it should just be some config changes and maybe a recovery that is datamedia aware so you don't erase the emulated sdcard when wiping data.
Smells like a project. I'll see if I will get around to this but this sounds doable.
No promises but my Inc could get bricked and I wouldn't cry over it so I can take a few risks.
Sent from my One using Tapatalk
I've only done a little research so far, but it seems like you'd only need to change a few configuration files. I don't think you could truly brick your Inc, could you? I'm tempted to try and get it working myself but I can't risk bricking my dd.
Sent from my ADR6300 using Tapatalk
ive got 2 incs so I dont mind messing with it, I have a touchpad tho and from what I know (I am decent friends with invisiblek and he does work on the touchpad) the only real difference, is re-partitioning your internal and setting the device tree to mount data as data/media instead of for say /data or /data/data
I have a TouchPad too. Finally made the leap to kk and datamedia there which is what got me thinking about the Inc. The repartioning done for the TouchPad was too make the data partition larger since it now holds both apps and sdcard data. We shouldn't have to do that for the Inc since we already have a partition with 6.6 gig available. Nothing is mounted at /data/media, it's just another directory on the main /data partition. That's why you need a special recovery that "wipes" data instead of formatting...
I've been looking at the changes milaq made. I assume invisiblek did something similar if not the same.
Sent from my ADR6300 using Tapatalk
natediggity said:
I have a TouchPad too. Finally made the leap to kk and datamedia there which is what got me thinking about the Inc. The repartioning done for the TouchPad was too make the data partition larger since it now holds both apps and sdcard data. We shouldn't have to do that for the Inc since we already have a partition with 6.6 gig available. Nothing is mounted at /data/media, it's just another directory on the main /data partition. That's why you need a special recovery that "wipes" data instead of formatting...
I've been looking at the changes milaq made. I assume invisiblek did something similar if not the same.
Sent from my ADR6300 using Tapatalk
Click to expand...
Click to collapse
A fancy flashable script to convert your boot.img to use /data/media should be possible. So far I told it to switch to mmcblk03 from 01 for /data so it's 6.6GB. The other part is relocating fuse to use /data/media for the internal storage instead of /emmc. That should be somewhat easy to change but a bit harder to script.
/data/media was designed for devices that don't have an sdcard slot which the Inc does have so this is more of a proof of concept idea for me than actual utility.
Ok, the last part is recovery and the current recovery images appear to be large enough to make the recovery build part fail. I'm not sure the actual recovery partition size on the inc but the images come to be about 4.5 MB and fail.
zachf714 said:
ive got 2 incs so I dont mind messing with it, I have a touchpad tho and from what I know (I am decent friends with invisiblek and he does work on the touchpad) the only real difference, is re-partitioning your internal and setting the device tree to mount data as data/media instead of for say /data or /data/data
Click to expand...
Click to collapse
/data/media uses fuse on an existing ext4 partition so the recovery as nate said has to be told to wipe /data instead of format (in other words, using an rm command and excluding /data/media).
This makes filesystem corruption harder to fix since the partition can't be wiped from recovery normally unless it's a format which TWRP does have an option to format /data.
tiny4579 said:
A fancy flashable script to convert your boot.img to use /data/media should be possible. So far I told it to switch to mmcblk03 from 01 for /data so it's 6.6GB. The other part is relocating fuse to use /data/media for the internal storage instead of /emmc. That should be somewhat easy to change but a bit harder to script.
/data/media was designed for devices that don't have an sdcard slot which the Inc does have so this is more of a proof of concept idea for me than actual utility.
Ok, the last part is recovery and the current recovery images appear to be large enough to make the recovery build part fail. I'm not sure the actual recovery partition size on the inc but the images come to be about 4.5 MB and fail.
Click to expand...
Click to collapse
Check my device tree, I have a commit on omni that compresses recovery a bit more and I use it to build
Sent from my SCH-I535 using Tapatalk
tiny4579 said:
A fancy flashable script to convert your boot.img to use /data/media should be possible. So far I told it to switch to mmcblk03 from 01 for /data so it's 6.6GB. The other part is relocating fuse to use /data/media for the internal storage instead of /emmc. That should be somewhat easy to change but a bit harder to script.
Click to expand...
Click to collapse
I don't need a flashable script unless it's required. Personally, I'm fine just building a new system image and flashing that.
tiny4579 said:
/data/media was designed for devices that don't have an sdcard slot which the Inc does have so this is more of a proof of concept idea for me than actual utility.
Click to expand...
Click to collapse
datamedia can be used in conjunction with sdcards. This is what the new samsung phones do. I thought the HTC One did as well, but I just remembered it doesn't have a sdcard slot. If you haven't already, check out this page: https://source.android.com/devices/tech/storage/config-example.html. Our config would be similar to the Xoom's.