Fuse-ext2 is an EXT2/EXT3/EXT4 filesystem for FUSE, and is built to work with osxfuse.
Fuse-ext2 requires at least Fuse version 2.6.0 for Linux.
Fuse-ext2 requires at least Fuse for macOS version 2.7.5 or greater.
Fuse for macOS can be installed via homebrew if Homebrew-Cask has been tapped.
Look for homebrew/cask
in the output.
To install Fuse for macOS using brew:
You will be interactively prompted for sudo access during the install.
brew install --cask osxfuse
For Fuse version 4.0.0 and higher use macfuse
brew install --cask macfuse
Building from source depends on the following:
$ sudo apt-get install m4 autoconf automake libtool
$ sudo apt-get install libfuse-dev e2fsprogs comerr-dev e2fslibs-dev
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo dnf install @development-tools m4 autoconf automake libtool e2fsprogs libcom_err-devel fuse-libs e2fsprogs-devel fuse-devel
# build part
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
You can use checkinstall
or some other equivalent tool to generate an install
package for your distribution.
Install via pkg:
$ pkg install sysutils/fusefs-ext2
Building via ports:
$ cd /usr/ports/sysutils/fusefs-ext2
$ make install clean
Dependencies:
Building from source depends on the following:
Copy and paste this into a file such as /tmp/ext4/script.sh
, but do not name the file install.sh
. Remember to chmod +x script.sh
. Run it
from that directory - ./script.sh
#!/bin/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
fi
# 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
fi
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
fi
tar -zxvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/opt/gnu
make
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
fi
tar -zxvf automake-1.15.tar.gz
cd automake-1.15
./configure --prefix=/opt/gnu
make
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
fi
tar -zxvf libtool-2.4.6.tar.gz
cd libtool-2.4.6
./configure --prefix=/opt/gnu
make
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
fi
tar -zxvf e2fsprogs-1.43.4.tar.gz
cd e2fsprogs-1.43.4
./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
cd fuse-ext2
./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
The e2fsprogs live in /opt/gnu/bin and /opt/gnu/sbin. fuse-ext2 is in /usr/local/bin.
cd
dd if=/dev/zero of=/tmp/test-fs.ext4 bs=1024 count=102400
/opt/gnu/sbin/mkfs.ext4 /tmp/test-fs.ext4
mkdir -p ~/mnt/fuse-ext2.test-fs.ext4
fuse-ext2 /tmp/test-fs.ext4 ~/mnt/fuse-ext2.test-fs.ext4 -o rw+,allow_other,uid=501,gid=20
To verify the UID and GID of the user mounting the file system:
id
To verify the file system has mounted properly:
mount
See the 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
Please send the output of the command below when reporting bugs as a 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
Please do not use commas ,
in partition labels.
Wrong: e2label /dev/disk0s3 "linux,ext3"
Correct: e2label /dev/disk0s3 "linux-ext3"
Alper Akcan alper.akcan@gmail.com