(I was about to ask it here, but since I found the answer I'll share it too)

After installing Android on NAND on my HD2, I found that the available system memory is too little for everyday use. It's around 180MB and after a few applications I need to move everything (manually) to SD card.

I would like to have more space for system, especially if I have a large (say, 8GB) SD card.


The answer is data2sd

What does it do?

It basically tells Android to use the ext2 partition (once available) on the SD card as internal storage, together with HD2's internal memory. This way you can get up to 4GBs.

How to install?

As specified in the forum, you can grab the recovery zip (check topic if link goes down) and install it in recovery. It's not that straightforward. If that's your first time, I suggest to:

  1. Make a backup of the SD card on PC, laptop, tablet or cloud, because it's going to be wiped
  2. Insert the card in HD2, boot in recovery (keep HOME down during HTC logo). Some ROMs allow you to reboot in recovery, some apps allow you to with one click: choose your favourite option
  3. From Clockwork recovery, choose the option to partition SD card (Advanced -> Partition SD Card), and choose your partition size. With card >= 8GB, I recomment 4096MB
  4. Once finished, power off, remove the card and copy the recovery zip you downloaded on the card. Also restore your previous backup
  5. Insert the card, boot Recovery again and choose the option to install a ZIP from SD card, then choose that file and confirm
  6. Reboot Android. You're done!!

How does it work?

When you partition the SD card, Android creates a swap partition (that works like in Linux, don't forget it's just plain Linux kernel) and an ext2 partition of the size you just chose in the end of the card. The first part of the card is partitioned with a FAT32 partition for easy interoperability, because Windows and other OSes only mount the first partition in a removable drive, if they can mount it.

Data2sd is basically an init script (running on system boot) that mounts this ext2 partition as the /data directory of the system.

Credit to user Anurag pandey@xda-developers

  • Thank you! Finally, I can install apps again :). However, you forgot the step to mount the system, data, sdcard and sd-ext partitions. Without this step, the zip install doesn't work. – Thomas Eyde Sep 18 '12 at 6:42
  • The boot script automatically mounts /sd-ext – usr-local-ΕΨΗΕΛΩΝ Sep 18 '12 at 9:15
  • Not during installation, it doesn't. At least not on my phone. The original article specifies this has to be done before the zip is installed. Once I did this, I could enjoy more internal memory – Thomas Eyde Sep 20 '12 at 11:25
  1. Root your phone.
  2. Install CWM
  3. Create a second partition on the sd card. 8 Gb card = second partition 3 Gb. Leaves you 5 Gb storage.
  4. Install link2sd from Google store. Link all apps to the second partition. In that way you have all widgets available.

  5. You will never have low memory problems again...

Not the answer you're looking for? Browse other questions tagged or ask your own question.