We're building a tool right now which includes booting a tiny Linux environment via PXE, and having it perform a number of system configuration operations without loading a larger system. (Formatting disks, creating filesystems, etc.) We've been planning to use BusyBox in this system, as having most of the system tools in one tiny static binary is obviously great in this context.

Problem, though: we've had a requirements change, and need support for creating ext3 (and maybe ext4) filesystems, which BusyBox does not support. Is anyone aware of a similarly self-contained binary tool which can be used for creating these filesystems? It doesn't need to also be BusyBox (I can include a few extra tools), but it can't require a bunch of dynamic libraries.


Compile e2fsprogs with static linking and choose the binaries you need from it. You probably only need mke2fs (which makes all kinda of EXT series file systems - mkfs.ext4 is just a symlink to it.

If you can't get static compiling to work, "ldd mke2fs" will at least show which libearies you need to install.

  • Thanks a lot! I added the required commands to accomplish this below as an answer to this question Aug 3 '16 at 8:57

I executed the following commands to compile e2fsprogs pkg statically to target ARM:

apt-get install gcc-arm-linux-gnueabi

wget http://kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.6/e2fsprogs-1.42.6.tar.bz2

tar -jxvvf e2fsprogs-1.42.6.tar.bz2

cd e2fsprogs-1.42.6

./configure CFLAGS='-g -O2 -static' CC=arm-linux-gnueabi-gcc  --host=arm-linux-gnueabi


After a successful compilation, you will find the mke2fs binary under misc/ directory. To make sure you generated the correct binary, check the binary format:

$ file ./mke2fs*
./mke2fs: **ELF 32-bit LSB  executable**, **ARM,** EABI5 version 1 ...

Now, I copied this binary as it is to my target platform.

To format a partition with ext4:

mke2fs -t ext4  /dev/xxx

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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