How to mount EXT4 partitions on Android Jelly Bean
I was racking my brains over how to mount an SD card formatted with anything other than FAT32 on my Android device. Jelly Bean and Kit Kat automatically mount FAT32 partitions, but they seem to ignore native Linux file systems – which Android clearly understands.
Apparently there’s a $1.54 app on the Play Store that can auto-mount cards (called EzyMount), but there is a way to do this for free: namely the old fashioned manual way.
All we need is root access to the device and a Terminal Emulator (available from the Play Store).
In this example I’m using /sdcard as my mount point, but you can of course mount that card anywhere you like. On my Nook Tablet, the standard mount point for the SD card is /storage/sdcard1, but this differs from device to device of course.
To mount the card, we’ll use the mount command:
mount -t ext4 /dev/block/mmcblk1p1 /sdcard
We need to specify the partition format with -t (for example, ext4, ext3, ext2), followed by the partition we want to mount, followed by the mount point. On my Nook Tablet for example, the SD card device itself is /dev/block/mmcblk1, and the first partition in it is mmcblk1p1.
To figure out what a device is called can use
Run this command before and after inserting your storage device. Watch what changes: the added device will be your SD card or USB stick.
Why do you need EXT4? Why not just use FAT32?
I need my files to be larger than the 4GB maximum file size imposed by FAT32. I’m using Anton Skshidlevsky’s amazing Linux Deploy to install fully fledged versions of various Linux distributions on my device. These don’t replace Android, but instead run side by side with Android in a chrooted environment.
Linux Deploy creates ISO images on the SD card which represent a full Linux installation (for example, Debian, Fedora, Ubuntu – anything that runs on your architecture). To be able to use the full size of an SD card, and to make the self-contained file system access more data, those ISO files can be as large as the SD card – even larger: Linux Deploy uses self-expanding ISO images, but you can only define partition sizes larger than 4GB if you have an EXT type file system on the card.
In a nutshell: Bigger is better.