osxfuse / osxfuse

FUSE extends macOS by adding support for user space file systems
https://osxfuse.github.io/
Other
8.78k stars 515 forks source link

ntfs-3g files not showing in Finder #574

Closed yang closed 5 years ago

yang commented 5 years ago

I realize ntfs-3g is a different project, but reporting in case others have seen this and it's not just me (or in the off chance it's an osxfuse issue), especially since this is a common use case and documented on the osxfuse wiki.

On Mojave, installing osxfuse + ntfs-3g via either brew or macports mounts fine, but files don't show up in Finder (can only see folders), even though all files are visible when ls-ing in Terminal.

Anyone else seeing this / knows what's going on?

wanderingsol commented 5 years ago

i am seeing this issue as well, tried with different options but to no avail. commands tried are: ntfs-3g /dev/disk2s1 /Volumes/NTFS -o local -o allow_other -o defer_permissions ntfs-3g /dev/disk2s1 /Volumes/NTFS -o local -o allow_other ntfs-3g /dev/disk2s1 /Volumes/NTFS -o local

Bibi commented 5 years ago

Same issue here. Everything up-to-date, macOS 10.14.4.

brett-hosking commented 5 years ago

Also having this problem, macOS 10.14.4

Bibi commented 5 years ago

From https://www.tuxera.com/community/ntfs-3g-faq/: "If you use Mac OS X or FreeBSD and have at least one very long filename with national characters and the filename length translates into more than 255 UTF-8 bytes (higher chance with Korean and Greek languages) then Mac OS X and FreeBSD will not show any files in the directory." That might be the problem in my case!

brett-hosking commented 5 years ago

That doesn't seem to be the problem for me. I have tried multiple hard drives, including some that have been freshly formatted (I created some files to test). No joy :(

Perhaps not a huge problem as I can still access them via the terminal but it would be nice to be able to use the Finder as well.

bfleischer commented 5 years ago

Please note that NTFS-3G and FUSE for macOS are independent projects. Should you run into NTFS-3G related issues please post the issues on the NTFS-3G support forum at http://tuxera.com/forum/viewforum.php?f=7.

yang commented 5 years ago

Sadly that forum has been frozen for some time now.

jief666 commented 5 years ago

I've a project that use osxfuse. I have that problem on Lion, but not on High Sierra. Can't test Mojave. I've traced everthing, using a sample with only one file called "file.txt" (no long file name or utf8 here), and I can't see anything different. Anyone got a clue ?

jief666 commented 5 years ago

I found my problem. I was returning 0 instead of an error when there was no com.apple.FinderInfo extended attribute. Maybe ntfs-3g is doing the same mistake ?

bugo99iot commented 5 years ago

Same issue here.

interkelstar commented 5 years ago

Same for me

tabletenniser commented 5 years ago

Same issue for me, command used: brew install ntfs-3g sudo mkdir /Volumes/NTFS_RW sudo /usr/local/bin/ntfs-3g /dev/ /Volumes/NTFS_RW -olocal -oallow_other

xzhorikx commented 5 years ago

Can confirm that the issue still exists.

ls -al shows that files can be read, however they are not displayed in finder image image

NTFS mounted using: sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Volumes/NTFS -olocal -oallow_other OS: Mojave 10.14.3 Beta (18D32a) osxfuse: 3.10.2

tchkreddy commented 5 years ago

Is there a solution for this?

skorotkiewicz commented 5 years ago

I have that problem too.

mercadodiego commented 5 years ago

I've the same issue

lezgomatt commented 5 years ago

For those who are encountering this issue, try adding -o auto_xattr. It did the trick for me. Someone should probably update the wiki to include this.

I also made a Python script called ezntfs to automate the process. You can install it via pip3 install ezntfs. It only requires NTFS-3G and Python 3.6 or up to be installed.

The script should make the process more convenient (no need to manually find the disk id, unmount, and set the volume name). The documentation is a bit lacking right now, but just run ezntfs on your terminal to see all the available commands.

Hope this helps.

skorotkiewicz commented 5 years ago

-o auto_xattr work for me! Thanks @undecidabot

this is my mount command now:

sudo /usr/local/bin/ntfs-3g /dev/disk3s1 /Volumes/NTFS -olocal -oallow_other -o auto_xattr

Screenshot 2019-10-12 at 23 23 00

tchkreddy commented 5 years ago

Surprisingly, the problem is resolved for me without -o xauto_attr! I was retesting to try it, but found it working even before fix

I just used sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Volumes/NTFS -olocal -oallow_other

indywidualny commented 4 years ago

True. -oallow_other is a solution! Awesome!

lozog commented 4 years ago

I am still having this issue even with the -o auto-xattr flag.

sudo /usr/local/bin/ntfs-3g /dev/disk2s2 /Volumes/seagate-ntfs -olocal -oallow_other -o auto-xattr is my mounting command

jlmoya commented 4 years ago

I too had been struggling with this issue and can confirm that

sudo /usr/local/bin/ntfs-3g /dev/disk3s1 /mnt/usb1 -olocal -oallow_other -oauto_xattr

solved the problem for me on Mojave 10.14.6

arwebSE commented 4 years ago

For those who are encountering this issue, try adding -o auto_xattr. It did the trick for me. Someone should probably update the wiki to include this.

I also made a Python script called ezntfs to automate the process. You can install it via pip3 install ezntfs. It only requires NTFS-3G and Python 3.6 or up to be installed.

The script should make the process more convenient (no need to manually find the disk id, unmount, and set the volume name). The documentation is a bit lacking right now, but just run ezntfs on your terminal to see all the available commands.

Hope this helps.

thanks a lot for this! this solved the issue for me on Catalina

hiteshbal91 commented 4 years ago

I am also having same issue where I can see the folders from Finder App but not files but it is visible from command lines. I have tried the provided solution but I am getting error as follows.

$ sudo /usr/local/bin/ntfs-3g /dev/disk2s3 /Volumes/HDB/ -olocal -oallow_other -oauto_xattr
mount_osxfuse: mount point /Volumes/HDB is itself on a OSXFUSE volume

MacOs: Catalina Version: 10.15.5

bfleischer commented 4 years ago

@hiteshbal91 You need to unmount the volume fist before you can re-mount it. There is already a volume mounted on /Volumes/HDB.

hiteshbal91 commented 4 years ago

thanks, @bfleischer resolved my issue.

viniciusbossle commented 4 years ago

To change "auto mount" of MacOS, you just need to edit /usr/local/sbin/mount_ntfs (a bash script) and add "-o auto_xattr" parameter to command line.

dfg-re commented 4 years ago

thanks @viniciusbossle. It works and mounts automatically the drive.

MacOS: Catalina Version: 10.15.6

bcarusodev commented 4 years ago

thanks @viniciusbossle very useful

berni0108 commented 4 years ago

Great! 👍 Worked for me as well on macOS Catalina 10.15.6 Thanks @viniciusbossle

amgdeveloper commented 4 years ago

I'm having this problem with macOs 10.14, I used to follow these steps to be able to write in NTFS partitions. But I don't know what has changed in my computer. I've tried executing sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Volumes/test/ -olocal -oallow_other -oauto_xattr but I still can't see the files in finder, only folders. I do can see the files through command line. I have also notices, that the icon of the external hard drive, used to appear with a yellow icon on it, but now it appears an icon with "Fuse".

flumiie commented 4 years ago

Is there any way I can run ntfs-3g command on startup? I tried it via LaunchDaemons but It has been unsuccessful for me and I don't want to run the command every startup

dmilojkovic76 commented 4 years ago

Thanks @viniciusbossle.

To change "auto mount" of MacOS, you just need to edit /usr/local/sbin/mount_ntfs (a bash script) and add "-o auto_xattr" parameter to command line.

Also, thanks to @lezgomatt.

-o auto_xattr fixed it for me on Mojave 10.14.6.

dragonandy commented 4 years ago

ITS NOT a osxfuse bug.The problem may be the mount_ntfs mounting scipt.ntfs-3g still works on macOs Catalina 10.15.6 with some modification INFACT you will need mounting parameter -o auto_xattr in the script first I found this online how macports make ntfs+osxfuse works in finder

https://trac.macports.org/wiki/howto/Ntfs3gFinder backup mount_ntfs to mount_ntfs.orig and try modified mount_ntfs script

cd /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin sudo mv mount_ntfs mount_ntfs.orig sudo nano mount_ntfs

put the script below into mount_ntfs

#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                done
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                fi
        else
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        fi
else
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi

/usr/local/opt/ntfs-3g/bin/ntfs-3g \
         -o volname="${VOLUME_NAME}" \
         -o local \
         -o negative_vncache \
         -o auto_xattr \
         -o auto_cache \
         -o noatime \
         -o windows_names \
         -o user_xattr \
         -o inherit \
         -o uid=$USER_ID \
         -o gid=$GROUP_ID \
         -o allow_other \
         "$@" &> /var/log/mount-ntfs-3g.log

exit $?;

then run

sudo chmod 555 mount_ntfs

Eject the disk and reconnect, Done!

muscovitebob commented 3 years ago

ITS NOT a osxfuse bug.The problem may be the mount_ntfs mounting scipt.ntfs-3g still works on macOs Catalina 10.15.6 with some modification INFACT you will need mounting parameter -o auto_xattr in the script first I found this online how macports make ntfs+osxfuse works in finder

https://trac.macports.org/wiki/howto/Ntfs3gFinder backup mount_ntfs to mount_ntfs.orig and try modified mount_ntfs script

cd /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin sudo mv mount_ntfs mount_ntfs.orig sudo nano mount_ntfs

put the script below into mount_ntfs

#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                done
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                fi
        else
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        fi
else
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi

/usr/local/opt/ntfs-3g/bin/ntfs-3g \
         -o volname="${VOLUME_NAME}" \
         -o local \
         -o negative_vncache \
         -o auto_xattr \
         -o auto_cache \
         -o noatime \
         -o windows_names \
         -o user_xattr \
         -o inherit \
         -o uid=$USER_ID \
         -o gid=$GROUP_ID \
         -o allow_other \
         "$@" &> /var/log/mount-ntfs-3g.log

exit $?;

then run

sudo chmod 555 mount_ntfs

Eject the disk and reconnect, Done!

Thanks for this. For some reason my latest brew install of ntfs-3g still does not include the line you added in your MR (checked via cat /usr/local/Cellar/ntfs-3g/2017.3.23_3/.brew/ntfs-3g.rb). brew info rtfs-3g output:

ntfs-3g: stable 2017.3.23 (bottled), HEAD
Read-write NTFS driver for FUSE
https://www.tuxera.com/community/open-source-ntfs-3g/
Deprecated because it requires FUSE!
/usr/local/Cellar/ntfs-3g/2017.3.23_3 (94 files, 2MB) *
  Poured from bottle on 2021-01-04 at 18:42:39
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/ntfs-3g.rb
==> Dependencies
Build: pkg-config ✔
Required: gettext ✔
==> Requirements
Required: FUSE ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 4,475 (30 days), 14,169 (90 days), 69,626 (365 days)
install-on-request: 4,471 (30 days), 14,010 (90 days), 67,398 (365 days)
build-error: 0 (30 days)

Hence I still observe the original bug. Any idea why I might be fetching an outdated brew bottle despite installing so recently?

mhawila commented 3 years ago

ITS NOT a osxfuse bug.The problem may be the mount_ntfs mounting scipt.ntfs-3g still works on macOs Catalina 10.15.6 with some modification INFACT you will need mounting parameter -o auto_xattr in the script first I found this online how macports make ntfs+osxfuse works in finder

https://trac.macports.org/wiki/howto/Ntfs3gFinder backup mount_ntfs to mount_ntfs.orig and try modified mount_ntfs script

cd /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin sudo mv mount_ntfs mount_ntfs.orig sudo nano mount_ntfs

put the script below into mount_ntfs

#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /Library/Preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                done
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                fi
        else
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        fi
else
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi

/usr/local/opt/ntfs-3g/bin/ntfs-3g \
         -o volname="${VOLUME_NAME}" \
         -o local \
         -o negative_vncache \
         -o auto_xattr \
         -o auto_cache \
         -o noatime \
         -o windows_names \
         -o user_xattr \
         -o inherit \
         -o uid=$USER_ID \
         -o gid=$GROUP_ID \
         -o allow_other \
         "$@" &> /var/log/mount-ntfs-3g.log

exit $?;

then run

sudo chmod 555 mount_ntfs

Eject the disk and reconnect, Done!

Thanks works like charm.

tonho911 commented 11 months ago

For those who are encountering this issue, try adding -o auto_xattr. It did the trick for me. Someone should probably update the wiki to include this.

I also made a Python script called ezntfs to automate the process. You can install it via pip3 install ezntfs. It only requires NTFS-3G and Python 3.6 or up to be installed.

The script should make the process more convenient (no need to manually find the disk id, unmount, and set the volume name). The documentation is a bit lacking right now, but just run ezntfs on your terminal to see all the available commands.

Hope this helps.

why I can't see installation sir?

antoniech@Antonies-iPro ntfs-3g_ntfsprogs-2022.10.3 % sudo ezntfs-app install sudo: ezntfs-app: command not found

Aliebc commented 6 months ago

For those who are encountering this issue, try adding -o auto_xattr. It did the trick for me. Someone should probably update the wiki to include this.

I also made a Python script called ezntfs to automate the process. You can install it via pip3 install ezntfs. It only requires NTFS-3G and Python 3.6 or up to be installed.

The script should make the process more convenient (no need to manually find the disk id, unmount, and set the volume name). The documentation is a bit lacking right now, but just run ezntfs on your terminal to see all the available commands.

Hope this helps.

It works for me.