Skip to content

Instantly share code, notes, and snippets.

@six519
Last active December 20, 2025 11:02
Show Gist options
  • Select an option

  • Save six519/9f04837f119103d4ff45542a5b5d4222 to your computer and use it in GitHub Desktop.

Select an option

Save six519/9f04837f119103d4ff45542a5b5d4222 to your computer and use it in GitHub Desktop.
Read/write NTFS drive on macOS Ventura with Apple silicon processor

Configuring your Mac!

Change security settings

  • Shut down your Mac, then press and hold the power button until "Loading startup options" appear.
  • Select "Options"
  • In the menu on top of the screen, choose "Utilities" -> "Startup Security Utility".
  • Click "Security Policy"
  • Select "Reduced Security" and check "Allow user management of kernel extensions from identified developers".
  • Reboot

Install macFUSE

  • Download latest stable release of macFUSE HERE and install.
  • Allow system extension signed by "Benjamin Fleischer" under "System Settings" -> "Privacy & Security"

Compiling/Installing ntfs-3g

  • Make sure Homebrew is already installed in your system.
  • Install ntfs-3g dependencies
brew install autoconf
brew install automake
brew install libtool
brew install libgcrypt
brew install pkg-config
  • Clone git project then change the current directory to ntfs-3g
git clone https://github.com/tuxera/ntfs-3g.git
cd ntfs-3g 
  • Compile and install
./autogen.sh
./configure --exec-prefix=/usr/local
make
sudo make install

Mounting NTFS drive for reading/writing data

  • After plugging in your NTFS drive, unmount it.
sudo umount /Volumes/LABEL_NAME

LABEL_NAME

  • Identify disk identifier
diskutil list

Example output

  • Mount drive with ntfs-3g
sudo ntfs-3g -o auto_xattr /dev/DISK_IDENTIFIER /Volumes/LABEL_NAME
  • Open the drive using finder and voila!!!!!

Screenshot

@lesha198a
Copy link
Copy Markdown

Is there any way to automate mounting? (I'm new to mac)

@srrules
Copy link
Copy Markdown

srrules commented Aug 23, 2023

I tried tutorial and it is working but with one change.
Replace command ./configure --exec-prefix=/usr/local
with LDFLAGS="-L//opt/homebrew/lib -lintl" ./configure --exec-prefix=/usr/local

@waldostilben
Copy link
Copy Markdown

I've tried tutorial and not working for me.

out >>

Running autoreconf --verbose --install --force
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: glibtoolize --copy --force
glibtoolize: putting auxiliary files in '.'.
glibtoolize: copying file './ltmain.sh'
glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
glibtoolize: copying file 'm4/libtool.m4'
glibtoolize: copying file 'm4/ltoptions.m4'
glibtoolize: copying file 'm4/ltsugar.m4'
glibtoolize: copying file 'm4/ltversion.m4'
glibtoolize: copying file 'm4/lt~obsolete.m4'
glibtoolize: Remember to add 'LT_INIT' to configure.ac.
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I m4
autoreconf: running: /opt/homebrew/Cellar/autoconf/2.71/bin/autoconf --force
configure.ac:475: warning: The preprocessor macro `STDC_HEADERS' is obsolete.
configure.ac:475: Except in unusual embedded environments, you can safely include all
configure.ac:475: ISO C90 headers unconditionally.
configure.ac:246: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: error: /opt/homebrew/Cellar/autoconf/2.71/bin/autoconf failed with exit status: 1

Any ideas?

@six519
Copy link
Copy Markdown
Author

six519 commented Oct 8, 2023

Is there any way to automate mounting? (I'm new to mac)

None that I know of at the moment.

@six519
Copy link
Copy Markdown
Author

six519 commented Oct 8, 2023

I've tried tutorial and not working for me.

out >>

Running autoreconf --verbose --install --force autoreconf: export WARNINGS= autoreconf: Entering directory '.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: running: glibtoolize --copy --force glibtoolize: putting auxiliary files in '.'. glibtoolize: copying file './ltmain.sh' glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. glibtoolize: copying file 'm4/libtool.m4' glibtoolize: copying file 'm4/ltoptions.m4' glibtoolize: copying file 'm4/ltsugar.m4' glibtoolize: copying file 'm4/ltversion.m4' glibtoolize: copying file 'm4/lt~obsolete.m4' glibtoolize: Remember to add 'LT_INIT' to configure.ac. autoreconf: configure.ac: not using Intltool autoreconf: configure.ac: not using Gtkdoc autoreconf: running: aclocal --force -I m4 autoreconf: running: /opt/homebrew/Cellar/autoconf/2.71/bin/autoconf --force configure.ac:475: warning: The preprocessor macro `STDC_HEADERS' is obsolete. configure.ac:475: Except in unusual embedded environments, you can safely include all configure.ac:475: ISO C90 headers unconditionally. configure.ac:246: error: possibly undefined macro: AC_MSG_ERROR If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. autoreconf: error: /opt/homebrew/Cellar/autoconf/2.71/bin/autoconf failed with exit status: 1

Any ideas?

I think you need to install pkg-config. brew install pkg-config

@inozura
Copy link
Copy Markdown

inozura commented Nov 21, 2023

Is there any way to automate mounting? (I'm new to mac)

You can use Mounty app to automatically mount NTFS storage
https://mounty.app

@Bitsonwheels
Copy link
Copy Markdown

Is there any way to automate mounting? (I'm new to mac)

You can use Mounty app to automatically mount NTFS storage https://mounty.app

Thanks for this link. Very usefull.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment