Skip to content

Instantly share code, notes, and snippets.

@six519
Last active May 12, 2024 03:10
Show Gist options
  • Save six519/9f04837f119103d4ff45542a5b5d4222 to your computer and use it in GitHub Desktop.
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

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

@srrules
Copy link

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

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
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
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

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

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