Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac OS X: unable to auto mount inserting an USB memory stick #34

Open
gpz500 opened this issue Apr 4, 2016 · 6 comments
Open

Mac OS X: unable to auto mount inserting an USB memory stick #34

gpz500 opened this issue Apr 4, 2016 · 6 comments

Comments

@gpz500
Copy link
Contributor

gpz500 commented Apr 4, 2016

At the insertion of an USB memory stick with a single ext4 partition, the partition is not mounted and these lines compare in /var/log/fuse-ext2_util.log:

[...]
2016-04-04 18:29:07: fuse-ext2 script invoked with command line "/System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util" "-m" "-o" "nodev" "-o" "noowners" "-o" "nosuid" "/dev/disk1s1" "/Volumes/Untitled 3"
2016-04-04 18:29:07: Invoking user: root
2016-04-04 18:29:07: [Mount] Entering function Mount...
2016-04-04 18:29:07: [Mount] Processing argument "/dev/disk1s1"
2016-04-04 18:29:07: [Mount] Processing argument "/Volumes/Untitled 3"
2016-04-04 18:29:07: [Mount] Got plain device "/dev/disk1s1"
2016-04-04 18:29:07: [Mount] Got raw device "/dev/rdisk1s1"
2016-04-04 18:29:07: [Mount] Invoking:
2016-04-04 18:29:07: [Mount]   "/usr/local/bin/fuse-ext2.wait" "/Volumes/Untitled 3" "5" "/usr/local/bin/fuse-ext2" "/dev/disk1s1" "/Volumes/Untitled 3" "-oauto_xattr,defer_permissions,local"
2016-04-04 18:29:13: [Mount] /usr/local/bin/fuse-ext2.wait returned with retval: 0
2016-04-04 18:29:13: [Mount] Output from mount operation: Mounting /dev/disk1s1 Read-Only.
Use 'force' or 'rw+' options to enable Read-Write mode
mount_osxfusefs: 'default_permissions' can't be used with 'defer_permissions'
Did not receive a signal within 5.000000 seconds. Exiting...
2016-04-04 18:29:13: [Mount] Executing "/usr/local/bin/fuse-ext2.daemon"
2016-04-04 18:29:13: [Mount] Exiting function mount...

After having removed defer_permissions from mount options (modified /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util as OPTIONS="auto_xattr,defer_permissions" --> OPTIONS="auto_xattr") it works as expected.

gpz500 referenced this issue in gpz500/fuse-ext2 Apr 6, 2016
@gpz500
Copy link
Contributor Author

gpz500 commented Apr 7, 2016

For anyone with the same problem, my fork gpz500/fuse-ext2 (specifically since commit 21c9a2e) solves this issue.
It includes also solutions, picked up from discussions on respective issues, to issues #32 and #33.
And, finally, it installs whitout having to disable SIP.

@kadin2048
Copy link

kadin2048 commented Jun 28, 2016

I think I am having the same issue but even with gpz500's fork, I am getting the same error. I'm trying to mount a portable HDD, not a memory stick, although I can't imagine why that would make a difference.

The error I am getting is the same as noted previously:

2016-06-27 22:12:23: fuse-ext2 script invoked with command line "/System/Library/Filesystems/fuse-ext2.fs/Contents/Resources/../../fuse-ext2.util" "-p" "disk5s1" "removable" "readonly" "" "" "" "" ""
2016-06-27 22:12:23: Invoking user: root
2016-06-27 22:12:24: [Probe] Entering function Probe...
2016-06-27 22:12:24: [Probe] Executing "/usr/local/bin/fuse-ext2.probe" "/dev/disk5s1" 2>&1
2016-06-27 22:12:24: [Probe]   Return value: 0
2016-06-27 22:12:24: [Probe]   Volname     : 
2016-06-27 22:12:24: [Probe]   Output (PROBE_OUTPUT): ""
2016-06-27 22:12:24: fuse-ext2 script invoked with command line "/System/Library/Filesystems/fuse-ext2.fs/Contents/Resources/../../fuse-ext2.util" "-k" "disk5s1" "" "" "" "" "" "" ""
2016-06-27 22:12:24: Invoking user: root
2016-06-27 22:12:24: [PrintUUID] Entering function PrintUUID...
2016-06-27 22:12:24: [PrintUUID] PrintUUID not implemented, returning FSUR_INVAL.
2016-06-27 22:12:24: [PrintUUID] Returning from function PrintUUID...
2016-06-27 22:12:24: fuse-ext2 script invoked with command line "/System/Library/Filesystems/fuse-ext2.fs/Contents/Resources/../../fuse-ext2.util" "-q" "/dev/rdisk5s1" "" "" "" "" "" "" ""
2016-06-27 22:12:24: Invoking user: root
2016-06-27 22:12:24: [QuickVerify] Entering function QuickVerify.
2016-06-27 22:12:24: [QuickVerify] Reporting that the volume is fine, even though that may not be the case (no fs checks performed).
2016-06-27 22:12:24: [QuickVerify] Returning from function QuickVerify.
2016-06-27 22:12:24: fuse-ext2 script invoked with command line "/System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util" "-m" "-o" "nodev" "-o" "noowners" "-o" "nosuid" "/dev/disk5s1" "/Volumes/Untitled 1"
2016-06-27 22:12:24: Invoking user: root
2016-06-27 22:12:24: [Mount] Entering function Mount...
2016-06-27 22:12:24: [Mount] Processing argument "/dev/disk5s1"
2016-06-27 22:12:24: [Mount] Processing argument "/Volumes/Untitled 1"
2016-06-27 22:12:24: [Mount] Got plain device "/dev/disk5s1"
2016-06-27 22:12:24: [Mount] Got raw device "/dev/rdisk5s1"
2016-06-27 22:12:24: [Mount] Invoking:
2016-06-27 22:12:24: [Mount]   "/usr/local/bin/fuse-ext2.wait" "/Volumes/Untitled 1" "5" "/usr/local/bin/fuse-ext2" "/dev/disk5s1" "/Volumes/Untitled 1" "-oauto_xattr,defer_permissions,local"
2016-06-27 22:12:29: [Mount] /usr/local/bin/fuse-ext2.wait returned with retval: 0
2016-06-27 22:12:29: [Mount] Output from mount operation: Mounting /dev/disk5s1 Read-Only.
Use 'force' or 'rw+' options to enable Read-Write mode
mount_osxfusefs: 'default_permissions' can't be used with 'defer_permissions'
Did not receive a signal within 5.000000 seconds. Exiting...
2016-06-27 22:12:29: [Mount] Executing "/usr/local/bin/fuse-ext2.daemon"
2016-06-27 22:12:29: [Mount] Exiting function mount...

I've tested using gpz500's fork (commit 45bcd02, latest; fuse-ext2 --version reports itself as fuse-ext2 0.0.9-gpz501 27) and also the main alperakcan version (commit 7139304) and I seem to get an identical error in both cases.

Mounting manually seems to work OK, but sure is inconvenient.

This is on OS 10.10.5 with latest dependencies from Brew. OSXFUSE is version 2.8.3.

@gpz500
Copy link
Contributor Author

gpz500 commented Jun 28, 2016

Hi @kadin2048, I tested my fork only on OS X 10.11.x (El Capitan) so I can't say if it is working on previous versions of OS X.
In any case, it seems that the failed mount cause is the option defer_permissions which, with recent versions of FUSE for OS X, is no more compatible with the option default_permissions (which, in turn, is forced by the command fuse-ext2: https://github.com/alperakcan/fuse-ext2/blob/master/fuse-ext2/fuse-ext2.c#L29). So, please, try to edit /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util in this way: change the line
OPTIONS="auto_xattr,defer_permissions"
to
OPTIONS="auto_xattr"
, and check if the log changes.
Just a question: the log you have reported is not from my fork, right? In the log it results that the fuse-ext2.fs package is in /System/Library/Filesystems, while with my fork it should be in /Library/Filesystems; and in my fuse-ext2.util file there is no longer any option defer_permissions.

@kadin2048
Copy link

@gpz500: Thanks for your response. The log above was supposed to be from your fork (45bcd02, specifically), but I did not notice that any of the install paths had changed, and I didn't explicitly remove any of the previously-installed products (built from 7139304); I just sudo make install-ed thinking that they would be the same and get clobbered. (Although fuse-ext2 --version did report the correct version string as though it had been changed, so that threw me off. But maybe not everything was the updated version.)

I will try to blow everything away and try a clean reinstallation of 45bcd02 to see if that fixes the issue.

@kadin2048
Copy link

kadin2048 commented Jul 6, 2016

Is there a recommended method of uninstalling alperakcan's version completely, or list of files that need to be deleted to ensure it's completely gone? I am still not able to get it working and I can't tell if it's a problem related to 10.10.5 or if it's stemming from having the remains of alperakcan's branch installed with gpz500's on top of it.

I deleted /System/Library/Filesystems/fuse-ext2.fs but now I'm getting an error mount: exec /System/Library/Filesystems/fuse-ext2.fs/Contents/Resources/mount_fuse-ext2 for /private/tmp/disk3s1: No such file or directory so clearly somebody is still looking for it and I haven't uninstalled the old version completely.

(For the record, I have tried running sudo make uninstall from commit 7139304 but I'm getting no logfile and the error noted above after I try to install gpz500's latest after that.)

@gpz500
Copy link
Contributor Author

gpz500 commented Jul 13, 2016

Hello @kadin2048,
is there a symbolic link /sbin/mount_fuse-ext2 insisting to point to /System/Library/Filesystems/fuse-ext2.fs/...? This one, unfortunately, is not removed by sudo make uninstall...
Please verify with the command:
$ ls -l /sbin
and, in such a case, delete it.

In any case, deleting all the following objects from alperkcan installation, should be sufficient to get a clean start:

/usr/local/bin/fuse-ext2
/usr/local/bin/fuse-ext2.install
/usr/local/bin/fuse-ext2.probe
/usr/local/bin/fuse-ext2.uninstall
/usr/local/bin/fuse-ext2.wait
/sbin/mount_fuse-ext2
/System/Library/Filesystems/fuse-ext2.fs
/Library/PreferencePanes/fuse-ext2.prefPane
/usr/local/lib/pkgconfig/fuse-ext2.pc
/usr/local/share/man/man1/fuse-ext2.1

The same objects are installed in slight different locations by my (gpz500) fork:

/usr/local/bin/fuse-ext2
/usr/local/bin/fuse-ext2.install
/usr/local/bin/fuse-ext2.probe
/usr/local/bin/fuse-ext2.uninstall
/usr/local/bin/fuse-ext2.wait
/usr/local/sbin/mount_fuse-ext2
/Library/Filesystems/fuse-ext2.fs
/Library/PreferencePanes/fuse-ext2.prefPane
/usr/local/lib/pkgconfig/fuse-ext2.pc
/usr/local/share/man/man1/fuse-ext2.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants