Closed josecanciani closed 7 years ago
This configure line worked better for me. It doesn't hardcode package versions. I'm on Mavericks.
CFLAGS="-idirafter/$(brew --prefix e2fsprogs)/include -idirafter/usr/local/include/osxfuse" LDFLAGS="-L$(brew --prefix e2fsprogs)/lib" ./configure
Yeah, it's cleaner, but it doesn't fix the original problem :(
can you please try again with commit 6fa1c01f133581f027b8dcda0e890bcbb8053b26
Yes, make ended without errors! But the sudo make install is getting this:
$ sudo make install Making install in fuse-ext2 .././install-sh -c -d '/usr/local/bin' /bin/sh ../libtool --mode=install /usr/bin/install -c fuse-ext2 fuse-ext2.probe fuse-ext2.wait fuse-ext2.install fuse-ext2.uninstall '/usr/local/bin' libtool: install: /usr/bin/install -c fuse-ext2 /usr/local/bin/fuse-ext2 libtool: install: /usr/bin/install -c fuse-ext2.probe /usr/local/bin/fuse-ext2.probe libtool: install: /usr/bin/install -c fuse-ext2.wait /usr/local/bin/fuse-ext2.wait libtool: install: /usr/bin/install -c fuse-ext2.install /usr/local/bin/fuse-ext2.install libtool: install: /usr/bin/install -c fuse-ext2.uninstall /usr/local/bin/fuse-ext2.uninstall /usr/bin/install -c -d "/sbin" install: chmod 755 /sbin: Operation not permitted ln -s -f "../System/Library/Filesystems/fuse-ext2.fs/mount_fuse-ext2" "/sbin/mount_fuse-ext2" ln: /sbin/mount_fuse-ext2: Operation not permitted make[2]: * [install-exec-local] Error 1 make[1]: * [install-am] Error 2 make: *\ [install-recursive] Error 1
I'll update Xcode from beta 3 to current beta 5 and I'll let you know.
It seems that won't work, it has to do with the new rootless feature, no-one can touch the /sbin folder: http://www.macworld.com/article/2948140/os-x/private-i-el-capitans-system-integrity-protection-will-shift-utilities-functions.html
Can we change the install script to install elsewhere? Will it automatically mount if we do?
Same issue as @josecanciani: the make install fails because of /sbin mentions. I tried changing the Makefile accordingly, but am too rusty on how these things work.
I tried creating /usr/loca/sbin and then running both with: ./configure --sbindir=/usr/local/sbin sudo make install exec_prefix=/usr/local and it gave the same error: /usr/bin/install -c -d "/sbin" install: chmod 755 /sbin: Operation not permitted
The /sbin dir must be hardcoded somewhere. But again I don't know if fuse-ext2 can work from another directory.
Any ideas?
Jose
I tried the first of your commands, @josecanciani but this is the different error I got:
...
checking for lseek64... no
checking for library containing sem_post... none required
checking for library containing fuse_main... no
configure: error: Can't find libfuse, please install it
I also tried to configure to build from source but I get:
checking for uname... yes
checking for utime... yes
checking for llseek... no
checking for lseek64... no
checking for library containing sem_post... none required
checking for library containing fuse_main... no
configure: error: Can't find libfuse, please install it
FUSE for OS X seems to be correctly installed.
Update:
I run configure
as follows:
$ CFLAGS="-idirafter/usr/local/Cellar/e2fsprogs/1.42.13/include -idirafter/usr/local/include/osxfuse/" LDFLAGS="-L/usr/local/lib -L/usr/local/Cellar/e2fsprogs/1.42.13/lib" ./configure --sbindir=/usr/local/sbin
$ make -j4
...
** BUILD SUCCEEDED **
$ sudo make install
Making install in fuse-ext2
/usr/local/bin/gmkdir -p '/usr/local/bin'
/bin/sh ../libtool --mode=install /usr/local/bin/ginstall -c fuse-ext2 fuse-ext2.probe fuse-ext2.wait fuse-ext2.install fuse-ext2.uninstall '/usr/local/bin'
libtool: install: /usr/local/bin/ginstall -c fuse-ext2 /usr/local/bin/fuse-ext2
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.probe /usr/local/bin/fuse-ext2.probe
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.wait /usr/local/bin/fuse-ext2.wait
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.install /usr/local/bin/fuse-ext2.install
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.uninstall /usr/local/bin/fuse-ext2.uninstall
/usr/local/bin/ginstall -c -d "/sbin"
ln -s -f "../System/Library/Filesystems/fuse-ext2.fs/mount_fuse-ext2" "/sbin/mount_fuse-ext2"
ln: /sbin/mount_fuse-ext2: Operation not permitted
make[2]: *** [install-exec-local] Error 1
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1
Therefore, the same error as reported by @josecanciani.
Edit 2:
@josecanciani it is hardcoded here:
https://github.com/alperakcan/fuse-ext2/blob/e6df7212b536842c25fd7ce59b0753aba1bd6b7a/fuse-ext2/Makefile.am
I changed it manually, but then:
Making install in fuse-ext2
/usr/local/bin/gmkdir -p '/usr/local/bin'
/bin/sh ../libtool --mode=install /usr/local/bin/ginstall -c fuse-ext2 fuse-ext2.probe fuse-ext2.wait fuse-ext2.install fuse-ext2.uninstall '/usr/local/bin'
libtool: install: /usr/local/bin/ginstall -c fuse-ext2 /usr/local/bin/fuse-ext2
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.probe /usr/local/bin/fuse-ext2.probe
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.wait /usr/local/bin/fuse-ext2.wait
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.install /usr/local/bin/fuse-ext2.install
libtool: install: /usr/local/bin/ginstall -c fuse-ext2.uninstall /usr/local/bin/fuse-ext2.uninstall
/usr/local/bin/ginstall -c -d "/sbin"
ln -s -f "../System/Library/Filesystems/fuse-ext2.fs/mount_fuse-ext2" "/usr/local/sbin/mount_fuse-ext2"
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-data-hook
make[3]: Nothing to be done for `install-data-hook'.
Making install in tools
Making install in macosx
/usr/local/bin/ginstall -c -d /System/Library/Filesystems/fuse-ext2.fs
/usr/local/bin/ginstall: cannot change permissions of ‘/System/Library/Filesystems/fuse-ext2.fs’: No such file or directory
make[3]: *** [install-exec-local] Error 1
make[2]: *** [install-am] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1
/System/
is also protected by the rootless thingy from Apple...
I "solved" this partially by installing the fuse-ext2 binary after disabling rootless as shown in here:
Like @muammar I disabled SIP and then it seemed to build and install OK. But it failed on the tests shown in the README, not finding the files listed.
I plugged in a very old external disk with what I think are ext2 partitions, and diskutil reports that it's mounted them as ext2, without me doing anything. Should this be the behaviour? I was still expecting to have to mount manually. The 2 mounted ext2 partitions are completely empty, which is suspicious.
@jgclark I didn't do the tests in README, but so far I can access my ext4 partition with writing support as usual.
Normally, the partitions are mounted automatically. In my case, I can access all content in the partitions.
Glad it's working for you! Thanks for confirming it will mount automatically for you.
Can you post the binary so others don't have to suffer as you already did? :-)
@surak You can install the version that is published by @alperakcan in sourceforge. That's what I used.
@muammar Thanks for the tip. For others, it's at http://sourceforge.net/projects/fuse-ext2/?source=directory
@jgclark The only version at sourceforge is 0.0.7, as far as I know. That doesn't appear to work in El Capitan (at least on my machine).
Actually the latest version didn't work well for me either, it just generates lots of Untitled volumes, but I suspect that something went wrong when I compiled it.
@muammar it does not work for el capitan.
You have to disable csrutil
:
muammar@zarathustra ⮀ ~ ⮀ csrutil status
System Integrity Protection status: enabled (Custom Configuration).
Configuration:
Apple Internal: disabled
Kext Signing: disabled
Filesystem Protections: disabled
Debugging Restrictions: disabled
DTrace Restrictions: disabled
NVRAM Protections: disabled
This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
@surak It does work for El Capitan (at least in my system).
I can't make it work. I'm fairly certain the build is completing and it installs (I did the csrutil fix), but it will not mount regardless of which method I choose. Whether I issue the command as:
mount -t fuse-ext /dev/disk2s2 /Volumes/Linux
-or-
fuse-ext /dev/disk2s2 /Volumes/Linux
neither command issues any error messages, but the disk does not mount. I watch the system.log when running the commands and nothing shows there either. I'm stumped. If I open the System Prefs I see the same thing as you (except 0.09 for the fuse-ext2 version).
Any ideas?
@vult2000 Try sudo, and make sure you make the director Linux in /Volumes
mkdir /Volumes/Linux
sudo fuse-ext /dev/disk2s2 /Volumes/Linux
@vul2000 @gregdaynes I had a similar problem (no mount and no error message) the trick was to use sudo for mkdir and fuse-ext as well (permissions issue)
I cannot get this to work. My problem is similar to @vult2000.
Running OS X El Capitan 10.11.2.
I installed Fuse 2.8.2 from their website.
After disabling csrutil
, I installed fuse-ext2 0.0.7 from the sourceforge link.
However, when I try to run: sudo mount -t fuse-ext2 /dev/disk1s1 /Volumes/Linux
A window pops up with the following error:
FUSE-EXT2 could not mount /dev/disk1
at /Volumes/Linux because the following problem occurred:
fuse-ext2: version:'0.0.7', fuse_version:'27' [main (../../fuse-ext2/fuse-ext2.c:324)]
fuse-ext2: enter [do_probe (../../fuse-ext2/do_probe.c:30)]
fuse-ext2: Error while trying to open /dev/disk1 (rc=13) [do_probe (../../fuse-ext2/do_probe.c:34)]
fuse-ext2: Probe failed [main (../../fuse-ext2/fuse-ext2.c:340)]
And when I try to run: sudo fuse-ext2 /dev/disk1s1 /Volumes/Linux
, the command completes without printing an error, but the disk is not mounted.
Does it matter that I am using fuse-ext2
instead of fuse-ext
?
I also tried this with fuse-ext2 0.0.9, and I get the same popup window but no error.
Note: I am trying to read/write an ext4-formatted SD card (I loaded it with Raspbian Jessie following these instructions). I tried fuse-ext2
with the disk both mounted and unmounted (diskutil), but no luck yet.
EDIT: I was able to mount the ext4 filesystem from my SD card by using a Linux VM as described here.
I have the exact same problem as @jstep322, but with an ext3 filesystem.
I've got it working using the Official Version from http://prdownloads.sourceforge.net/fuse-ext2/fuse-ext2-0.0.7.dmg?download using osx fuse 2.8.3 tested on both Yosemite and El Capitan with SIP turned off if have it installed already remove with sudo make uninstall from the directory you installed it from and install the dmg version
Installing to /Library rather than to /System/Library does help: 95c8e5f6b416b061f941bcd4333ff0bd32fa00f9 The latest version (v0.0.9) works on El Capitan w/o messing with SIP settings
$ csrutil status
System Integrity Protection status: enabled.
$ mount | grep ext2
/dev/disk4s2 on /Volumes/Development/root (osxfusefs_ext2, local, synchronous)
$ df | grep disk4s2
/dev/disk4s2 29688888 595752 27585024 3% 2243 940605 0% /Volumes/Development/root
@alperakcan Any instructions on uninstallation? No point in having broken installations taking up disk space needlessly since you seem to be unable to support El Capitan.
I deployed a computer with OS X 10.11.3, compiled and installed the myriad of tools needed and disabled rootless before it successfully compiled. It was a hassle to get the binary but it's now working when put in /Library/FileSystems. Made the folder and mounted with:
/usr/local/bin/fuse-ext2 /dev/disk1s1 /Volumes/Linux
@RobertJansson Any chance we can get the 0.0.9 binary for El Capitan already compiled?
I would absolutely upload that but only if that doesn't violate any license? Can anyone tell if such distribution must contain any documents and also let me know if you know any good distribution model? Can we do it here somehow?
I think that if you fork this project and add the download there it should be fine. As long as the code and any change you make stay in public domain. Although I believe the best solution would be if the master could integrate your changes. But I'm not really an expert of this legal stuff.
There is no change in code but a huge hassle to setup the full environmental, build and compile. I'll try and upload a simple installer here but make sure it doesn't surface or re-distributes elsewhere. I truly hope someone delete this post if there are any form of violations because my true intention is to help.
Please try this installer and let me know if it does the job or if there are any problems. I have not bothered with certificate so control-click and select open to pass the quarantine. Two files will be installed:
/Library/Filesystems/fuse-ext2.fs (v.0.0.9)
/Library/PreferencePanes/fuse-ext2.prefPane (64 bit version)
Installer: fuse-ext2 (OSX 10.11).v0.0.9.pkg.zip
Ok Robert, I could install the package with no issues as you can see on thus screenshot:
The problem is that I have a couple of SD cards partitioned FAT32/ext4 (I think it was ext4) and only the FAT32 gets recognized. But I know the ext partitions were recognized in Yosemite.
Could it be because I've run
sudo fuse-ext2.uninstall
before installing it? There are no fuse-ext2.* files in /use/local/bin either.
PS: now that I checked it better your .pkg file is only 54KB? What did I exactly install?
I restored with Time Machine all fuse-ext2 files I uninstalled. This is what I get:
bash-3.2# fuse-ext2 -o rw+ /dev//disk3s2 /mnt
fuse-ext2: version:'0.0.7', fuse_version:'27' [main (../../fuse-ext2/fuse-ext2.c:324)]
fuse-ext2: enter [do_probe (../../fuse-ext2/do_probe.c:30)]
fuse-ext2: leave [do_probe (../../fuse-ext2/do_probe.c:55)]
fuse-ext2: opts.device: /dev//disk3s2 [main (../../fuse-ext2/fuse-ext2.c:351)]
fuse-ext2: opts.mnt_point: /mnt [main (../../fuse-ext2/fuse-ext2.c:352)]
fuse-ext2: opts.volname: sdext [main (../../fuse-ext2/fuse-ext2.c:353)]
fuse-ext2: opts.options: rw+ [main (../../fuse-ext2/fuse-ext2.c:354)]
fuse-ext2: parsed_options: rw,allow_other,local,noappledouble,fsname=/dev//disk3s2,fstypename=ext2,volname=sdext [main (../../fuse-ext2/fuse-ext2.c:355)]
fuse-ext2: mounting read-write [main (../../fuse-ext2/fuse-ext2.c:369)]
bash-3.2# touch /mnt/foo
bash-3.2# ls -l /mnt/foo
-rw-r--r-- 1 root wheel 0 20 Mar 10:02 /mnt/foo
bash-3.2# rm /mnt/foo
So it partially works I suppose. Disk Utility doesn't recognize the ext partition, though.
You did exactly install what I exactly said and you can verify that opening the package in Installer and select show files. But you are right you also need the binaries so hope you can take them like this because putting them in the package require scripting and testing. Let me know if it's better. usr-local-bin.zip
Ok, I tested it now. A couple of things:
bash-3.2# fuse-ext2 -o rw+ /dev//disk3s2 /mnt
dyld: Library not loaded: /usr/local/lib/libosxfuse.2.dylib
Referenced from: /usr/local/bin/fuse-ext2
Reason: Incompatible library version: fuse-ext2 requires version 12.0.0 or later, but libosxfuse.2.dylib provides version 10.0.0
Trace/BPT trap: 5
PS: thinking better at it I didn't see the library in the list when I uninstalled it. Nor from the Time Machine
I don't know what the heck I did anymore. After installing the lib files it stopped working. So I restored the lib and bin folders of /usr/local. And that didn't work either. I installed your apk and only the binary files (no libs) and now it works manually via command line. Disk Utility has no idea what that partition is, though. While "diskutil" instead does.
Well, it's better than nothing I suppose. Otherwise I'll fire up my Linux virtual machine. Thanks a lot anyway! :+1: :)
It came to be quite messy and I should have made a complete package instead and taken the time to test it before. Glad you are sorted.
I mount the disk image I started from with the normal hdiutil attach, got the diskID and used fuse-ext2 to mount the volume. umount and hdiutil detach was used to remove the volume. Sorry to say but Disk utility is a program I stopped using at OSX10.6 because it was very unreliable and limited. You should not even bother about the new version. diskutil and hdiutil on the other hand are awesome.
Well, actually I used to like Disk Utility until Yosemite. I could do some neat stuff with it using the UI. Like resize a partition on the fly. Or format a partition in ext4. It's this new one in El Capitan that seems to have gone back to the stone age. I just upgraded to a new MBP (and with it to El Capitan), I couldn't believe my eyes.
Anyway, now I don't remember well (I don't really use Linux filesystems much, but when I do I'd love to do it from the Finder), but I think in Yosemite fuse-ext2 was auto-mounting the ext partitions. Is that working for you or it's gone?
It's gone.
Am 21.03.2016 um 09:54 schrieb Michelasso notifications@github.com:
Well, actually I used to like Disk Utility until Yosemite. I could do some neat stuff with it using the UI. Like resize a partition on the fly. Or format a partition in ext4. It's this new one in El Capitan that seems to have gone back to the stone age. I just upgraded to a new MBP (and with it to El Capitan), I couldn't believe my eyes.
Anyway, now I don't remember well (I don't really use Linux filesystems much, but when I do I'd love to do it from the Finder), but I think in Yosemite fuse-ext2 was auto-mounting the ext partitions. Is that working for you or it's gone?
— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub
The new version is very beautiful but the usefulnes was really gone a long time ago. Try to make the 650 MB recovery partition and get it right in the old version and you see some real flaws. A disk utility that can't even get the numbers right, mix bit with bytes, can't reach the partition type the OS require etc is not a good tool for more than monitoring. I must say I almost like the new version better for overview (but that is personal). Just write your own tool for mounting or automate by probing for changes on the bus.
@eblot Do you have a compiled binary to let us try it without having to disable SIP?
I made binary packages without having to disable SIP. You can download them from here: https://github.com/gpz500/fuse-ext2/releases. Glad if you try them ;-).
PS: because the packages are not signed, you have to Ctrl+click on fuse-ext2.pkg, click on Open and then click on Open again.
Works pretty well for me, now I can mount my 1TB ext4 HD
@gpz500, thank you! It works!
I have been able to mount the drive using the following command typed into Terminal
mkdir /Volumes/Linux
sudo mount -t fuse-ext2 /dev/disk2s6 /Volumes/Linux
Hello,
I have an ext4 hard disk and I tried to upgrade my system to os x et captain but the fuse2.ext2 extention don't work, I have fond this :
http://apple.stackexchange.com/questions/210198/mount-ext4-on-el-capitan
Could you help me to fix this bug ?
Best regards
Battant
Hello,
I have found this article in french ;
Could you help me to found and extension make this action automatically ?
Best regards
Battant
@gpz500 Glad to report that it works for me as well. Only annoyance is that it can only be mounted through command line and I get "This disk you inserted was not readable by this computer" message every time I log in.
Is there any eta on proper support for 10.11?
Hello. I've installed El Capitan and I'm trying to build ext2fuse.
I've installed OSXFUSE 2.8 (which should work with El Capitan). I also have Xcode 7 beta and it's Command Line tools (I had to run xcode-select --switch pointing to the Xcode beta path).
Then I've installed e2fsprogs with homebrew and I was able to run the configure script of ext2fuse with this environment:
But when I try "make" it seems everything goes as planned until it reaches this error:
Any ideas?
Thanks, Jose