How to mount EXT4 partitions on Android Jelly Bean

- by

Jelly-Bean-LogoI 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

ls /dev/block

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.



If you enjoy my content, please consider supporting me on Ko-fi. In return you can browse this whole site without any pesky ads! More details here.

5 thoughts on “How to mount EXT4 partitions on Android Jelly Bean”

  1. Not working :/ mount: Invalid argument :/ i try:
    mount -t ext4 /dev/block/mmcblk1p2 /data/sdext2
    mount -w -t ext4 /dev/block/mmcblk1p2 /data/sdext2
    mount -w -o remount -t ext4 /dev/block/mmcblk1p2 /data/sdext2
    it’s not working please help
    all foler and files exist

  2. @Tom and @DJIntel I faced the same issue. In order for the command to succesfully execute, you need to make sure “data/sdext2” exists. Or just try `mkdir /data/sdext2` in cmd b4 trying the mount command. Hope it helps

  3. Try:
    busybox mount -t [auto,ext4,ect..] /dev/block/mmcblk[0,1,ect..]p[1,2,ect..] /where/you/want
    Of course install before busybox from googleplay

Leave a Comment!

This site uses Akismet to reduce spam. Learn how your comment data is processed.