Fuse-ext2 is a multi OS FUSE module to mount ext2, ext3 and ext4 file system devices and/or images with read write support.
C Objective-C M4 Makefile Roff Shell
Switch branches/tags
Nothing to show
Latest commit f0407ac Oct 30, 2017 @alperakcan alperakcan Merge pull request #66 from ehaupt/patch-1
Add instructions for FreeBSD


Fuse Ext2

Fuse-ext2 is a EXT2/EXT3/EXT4 Filesystem support for FUSE.


Fuse-ext2 requires at least Fuse version 2.6.0 for Linux. For Mac OS X latest version of OSXFuse 2.7.5.

  1. Linux: Fuse
  2. Mac OS: OSXFuse



Build from source depends on:

  • m4
  • autoconf
  • automake
  • libtool
  • libfuse-dev
  • e2fsprogs
  • comerr-dev
  • e2fslibs-dev
$ apt-get install m4 autoconf automake libtool
$ apt-get install libfuse-dev e2fsprogs comerr-dev e2fslibs-dev
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

You can use checkinstall or some other equivalent tool to generate install package for your distribution.


Install via pkg:

$ pkg install sysutils/fusefs-ext2

Build via ports:

$ cd /usr/ports/sysutils/fusefs-ext2
$ make install clean

Mac OS:


OSXfuse Build from source depends on:

  • m4
  • autoconf
  • automake
  • libtool
  • e2fsprogs

Copy and paste this into a file such as /tmp/ext4/script.sh. Remember to chmod +x script.sh. Run it from that directory - ./script.sh

export PATH=/opt/gnu/bin:$PATH
export PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

mkdir fuse-ext2.build
cd fuse-ext2.build

if [ ! -d fuse-ext2 ]; then
    git clone https://github.com/alperakcan/fuse-ext2.git	

# m4
if [ ! -f m4-1.4.17.tar.gz ]; then
    curl -O -L http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz
tar -zxvf m4-1.4.17.tar.gz 
cd m4-1.4.17
./configure --prefix=/opt/gnu
make -j 16
sudo make install
cd ../
# autoconf
if [ ! -f autoconf-2.69.tar.gz ]; then
    curl -O -L http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar -zxvf autoconf-2.69.tar.gz 
cd autoconf-2.69
./configure --prefix=/opt/gnu
sudo make install
cd ../
# automake
if [ ! -f automake-1.15.tar.gz ]; then
    curl -O -L http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
tar -zxvf automake-1.15.tar.gz 
cd automake-1.15
./configure --prefix=/opt/gnu
sudo make install
cd ../
# libtool
if [ ! -f libtool-2.4.6.tar.gz ]; then
    curl -O -L http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz
tar -zxvf libtool-2.4.6.tar.gz 
cd libtool-2.4.6
./configure --prefix=/opt/gnu
sudo make install
cd ../

# e2fsprogs
if [ ! -f e2fsprogs-1.43.4.tar.gz ]; then
    curl -O -L https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.43.4/e2fsprogs-1.43.4.tar.gz
tar -zxvf e2fsprogs-1.43.4.tar.gz
cd e2fsprogs-1.43.4
./configure --prefix=/opt/gnu --disable-nls
sudo make install
sudo make install-libs
sudo cp /opt/gnu/lib/pkgconfig/* /usr/local/lib/pkgconfig
cd ../
# fuse-ext2
export PATH=/opt/gnu/bin:$PATH
export PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

cd fuse-ext2
CFLAGS="-idirafter/opt/gnu/include -idirafter/usr/local/include/osxfuse/" LDFLAGS="-L/opt/gnu/lib -L/usr/local/lib" ./configure
sudo make install


the e2fsprogs live in /opt/gnu/bin and /opt/gnu/sbin, fuse-ext2 is in /usr/local/bin

dd if=/dev/zero of=test/fs.ext2 bs=1024 count=102400
/opt/gnu/sbin/mkfs.ext4 test/fs.ext2
fuse-ext2 test/fs.ext2 /mnt/fs.ext2 -o debug,rw+


See Man page for options.

Usage:    fuse-ext2 <device|image_file> <mount_point> [-o option[,...]]

Options:  ro, rw+, force, allow_other
          Please see details in the manual.

Example:  fuse-ext2 /dev/sda1 /mnt/sda1


  • Multithread support is broken for now, so forcing fuse to work single thread.
  • there are no known bugs for read-only mode, read only mode should be ok for every one.
  • although, write support is available please do not mount your filesystems with write support unless you do not have anything to loose.

Please send output the output of below command while reporting bugs as GitHub Issue. Before submitting a bug report, please look at the existing issues first.

$ /usr/local/bin/fuse-ext2 -v /dev/path /mnt/point -o debug

Important: Partition Labels

Please do not use comma , in partition labels.

Wrong: e2label /dev/disk0s3 "linux,ext3"

Correct: e2label /dev/disk0s3 "linux-ext3"


Alper Akcan alper.akcan@gmail.com