Fuse-ext2 is a multi OS FUSE module to mount ext2, ext3 and ext4 file system devices and/or images with read write support. Updated build from source instructions and configure.ac to work on OS X 10.11 with XCode 8.1. New binary package for 10.11 includes e2fsprogs
C Objective-C M4 Makefile Other Shell
Pull request Compare This branch is 15 commits behind alperakcan:master.
Latest commit 4a701f5 Nov 16, 2016 @adouble42 committed on GitHub Update README.md

README.md

Fuse Ext2

Fuse-ext2 is a EXT2/EXT3/EXT4 Filesystem support for FUSE. this fork is a build tested under XCode 8.1, OS X 10.11. changed to a version of e2fsprogs that builds cleanly following these instructions, and removed offending line from configure.ac that breaks original build.
this has also had the /Library/Filesystems/fuse-ext2.fs/fuse-ext2.util script adjusted to mount read/write by default, but respect diskutil's rdonly flag.
write support has been tested and seems to work. using this i'm able to read and write ext3 (no journal) nemesis (http://mrn.sixbit.org) volumes on OS X, providing a common, writable filesystem for the OS X, Linux and FreeBSD versions.
BINARY PACKAGE for OS X HERE (built on 10.11 with XCode 8.1): http://mrn.sixbit.org/files/fuse-ext2-0.0.9-e2fsprogs-1.43-3.dmg
this distribution includes binary e2fsprogs package 1.43.3, that installs in /opt/gnu by default, as well.
in order to comply with the license the e2fsprogs source is included in "extras" which makes for a larger download.

Dependencies

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

Linux:

Dependencies:

# fuse
$ apt-get install libfuse

Build from source depends on:

  • m4
  • autoconf
  • automake
  • libtool
  • fuse-dev
  • e2fsprogs-dev
$ apt-get install m4 autoconf automake libtool
$ apt-get install libfuse-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.

Mac OS:

Dependencies:

OSXfuse Build from source depends on:

  • m4
  • autoconf
  • automake
  • libtool
  • e2fsprogs
export PATH=/opt/gnu/bin:$PATH
export PKG_CONFIG_PATH=/opt/gnu/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

mkdir gnu
cd gnu

# m4
curl -O 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
curl -O 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
make
sudo make install
cd ../

# automake
curl -O 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
make
sudo make install
cd ../

# libtool
curl -LO 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
make
sudo make install
cd ../

# e2fsprogs
curl -O https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.12/e2fsprogs-1.43.3.tar.gz
tar -zxvf e2fsprogs-1.43.3.tar.gz
cd e2fsprogs-1.43.3
./configure --prefix=/opt/gnu --disable-nls
make
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

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

Test

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+

Usage

See Man page for options.

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

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

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

Bugs

  • 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"

Contact

Alper Akcan alper.akcan@gmail.com