Open congma opened 8 years ago
Is fuse-ext2 working for you in 10.12.1?. I compiled the package, but it does not work for me even with sudo...
Is fuse-ext2 working for you in 10.12.1?
Yes. I'm using it to read ext4 partitions on a GPT volume.
Yes. I'm using it to read ext4 partitions on a GPT volume.
I have double boot on my macbook pro, and I cannot make it work. It stopped since September 24. I don't understand why. Thanks for replying.
I am currently experiencing the same thing. I really would like to have the WM manage the external drives, instead of having to issue sudo
via command line.
Another note is that, if I do sudo fuse-ext2 ...
, the mounted partition will be of root privilege and is not accessible directly. However, if I do it with sudo mount_fuse-ext2 ...
, it works as expected, i.e., the mounted directory is owned by the current user.
@Jerry-Ma I don't even see this "mount_fuse-ext2" available. Should we join this issue with a similar one, https://github.com/alperakcan/fuse-ext2/issues/34 ?
@surak
I believe the mount_fuse-ext2
is used by OSX to mount the filesystem. If you look in to /sbin/
there are a number of similar commands:
❯ ls /sbin/mount_*
/sbin/mount_acfs@ /sbin/mount_exfat@ /sbin/mount_nfs*
/sbin/mount_afp* /sbin/mount_fdesc* /sbin/mount_ntfs@
/sbin/mount_apfs@ /sbin/mount_ftp@ /sbin/mount_ntfs.orig@
/sbin/mount_cd9660@ /sbin/mount_fuse-ext2@ /sbin/mount_smbfs*
/sbin/mount_cddafs@ /sbin/mount_hfs@ /sbin/mount_udf@
/sbin/mount_devfs* /sbin/mount_msdos@ /sbin/mount_webdav*
By default, fuse-ext2 installs this command in /usr/local/sbin, however, according to my experience with ntfs-3g
, it needs to be placed in /sbin (which requires disabling SIP)
Should we join this issue with a similar one, #34 ?
Yes I think so. I checked #34 and tried the fork from @gpz500 (later on I found his work has been already merged to this repo), but with no luck.
I did some investigation, and found the issue seems to be some mis-communication between diskarbitrationd and fuse-ext2. From diskarbitrationd log, I can see that it tries to "probe" the ext4 drive but the probe program (should be fuse-ext2.util -p
) for some reason returns failed signal.
For now, I created a shell script for manually probing and mounting Linux drives using diskutil, e2label and fuse-ext2.util
Hello everyone!
I don't think this issue should join #34, because even if the symptom is the same (inability to automatically mount an ext4 filesystem at the insertion of an external drive), the cause seems quite different. In the #34 it was an incompatible option (defer_permissions
) passed to fuse-ext2 executable by fuse-ext2.util -m
(the mounting process' last step). In this case fuse-ext2.util -p
invocation fails, which is a more preceding step.
Something must have changed from El Capitan to Sierra: a deeper investigation is needed to find out why the probing under diskarbitrationd is failing on Sierra, but in this moment I don't have much time to dedicate to this... Does anyone have some more information?
@gpz500
I spend some time trying to understand where it goes wrong and based on the very limited knowledge I have about how fuse and diskarbitrationd works, it seems that the fuse-exst2.wait never returned successfully, which, according to the logging message, might be due to the fact that it doesn't see the CFNotification posted from libfuse. I tried a different version of fuse_wait from https://github.com/bfleischer/fuse_wait but still no success.
Took me 4 days of trial and error and reading through apple source code, but I have the solution to this problem. file system plugins must be code signed to work. move all the scripts into Contents/Resources and run everything from there. the entire bundle should be owned/grouped by root/wheel. the "command" values in the bundle for the executable keys must be the exact name of the script/binary file in Contents/Resources....it cannot be a posix path.
FYI. the probe "command" key is processed in DAFileSystemProbe() in DAFileSystem.c. you can see in that function that the command path is obtained through a call to ___CFBundleCopyResourceURLInDirectory(). Therefore, trying to give the system a path name to run will not work.
On macOS Sierra (10.12), using the most recent OSXFuse stable release (3.5.2), with
fuse-ext2
compiled from source (up to currentHEAD
at 400dfacd), there is a behavior change which I believe is a bug.Desired behavior: External
ext4
filesystems are probed and available in macOS "Finder" app without explicit privilege-escalation usingsudo
. After plugging in the external USB drive, it should be available in Finder and can be mounted/umounted by the user. This is the old behavior on Mac OS X 'El Capitan' and earlier.Current behavior: the FSes can no longer be probed without
sudo
rights. After plugging in the drive, nothing happens. The commandfuse-ext2.probe /dev/xxx
returns with exit code 252, but usingsudo
, it exits successfully. Similarly, the commandfuse-ext2 /dev/xxx path/to/mountpoint
fails with 252, but succeeds only undersudo
. The mounted FS must be umounted withsudo
, too.Although use is still possible, I wonder if this is a limitation due to the increasingly draconian restrictions in place since macOS 10.12. Is there a workaround to restore the old behavior? Or is there something that needs to be fixed in the
fuse-ext2
code?