How to enable writing to NTFS drives on macOS Ventura

48

At the WWDC 2022 event, Apple unveiled macOS 13 Ventura, the latest iteration of its operating system. One of the anticipated features was the ability to read and write to NTFS drives, a capability that many users have been curious about.

Unfortunately, the answer is still no – macOS does not natively support writing to NTFS partitions, though it can read them. However, there are several workarounds that allow Mac users to access this functionality. In this tutorial, I will show you how to enable writing to NTFS drives on macOS Ventura for free.

Utilizing Terminal Commands in Conjunction with NTFS-3G (a no-cost software)

There is a cost-free method to enable writing to NTFS drives on macOS Ventura, which involves using NTFS-3G and MacFuse. MacFuse installs the NTFS filesystem kernel on your macOS, and NTFS-3G utilizes this kernel to enable both reading and writing to NTFS drives. With the help of the Terminal application that is already installed on your Mac, you can activate Mac writing to NTFS by executing a series of NTFS-3G commands. Follow the instructions below to learn how to enable Mac writing to NTFS using Terminal.

Step 1: Install MacFuse by downloading and running the installation file.

Step 2: Click on the Spotlight Search icon and search for ‘Terminal‘.

Step 3: Homebrew is a popular open-source package manager for macOS. To install it on your Mac, copy and paste the following command into the Terminal:

				
					/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
				
			
Install Homebrew on macOS Ventura

Step 4: Use Homebrew to install NTFS-3G.

				
					brew tap gromgit/homebrew-fuse
				
			
				
					brew install ntfs-3g-mac
				
			
Install NTFS-3G on Mac with Homebrew

Step 5: Then run the following commands one by one:

# List volume in macOS

				
					diskutil list
				
			

# Unmount NTFS Drive (disk2s2)

				
					sudo umount /dev/disk2s2
				
			

# Mount and Enable NTFS Write permission

				
					sudo mkdir /Volumes/NTFSDrive
sudo /usr/local/bin/ntfs-3g /dev/disk2s2 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache
				
			

Note: Be sure to substitute ‘disk2s2‘ with the identifier for your own NTFS drive. You can find the identifier by running the first command, which will display it next to your NTFS drive.

Congratulations! You can now both read from and write to NTFS drives on macOS 13 Ventura.

Enabling Read and Write Access to NTFS Drives on Mac using NTFS-3G.

Update. I feel a bit inconvenienced having to run this command every time I boot my Mac. So, I created a script to automatically run this command.

  1. Open the Terminal app on your Mac.
  2. Type “nano mount_ntfs.sh” and press enter to create a new shell script.
  3. In the text editor, paste the following lines of code:
				
					#!/bin/bash
sudo diskutil unmount /dev/disk2s2
sleep 2
sudo /usr/local/bin/ntfs-3g /dev/disk2s2 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache

				
			
sleep 2 indicates that it will pause for 2 seconds before executing the next command.
  1. Save the script by pressing Ctrl+O and then enter. Then exit by pressing Ctrl+X.
  2. Make the script executable by running the following command in the Terminal:
				
					chmod +x mount_ntfs.sh
				
			

By default, macOS does not allow executable scripts to be added to Login Items. However, you can create an AppleScript to run the shell script with sudo and add the AppleScript to Login Items. Here are the steps:

  1. Open Script Editor on your Mac (you can find it in Applications > Utilities).
  2. Create a new script by selecting File > New or pressing Command+N.
  3. Paste the following AppleScript code into the script editor:
				
					do shell script "sudo /path/to/your/mount_ntfs.sh"
				
			

Replace /path/to/your/mount_ntfs.sh with the actual path to your shell script.

  1. Save the AppleScript by selecting File > Save or pressing Command+S.
  2. Choose a name for the script and select “Application” as the file format.
  3. Click “Save”.
  4. Open System Preferences > General > Login Items.
  5. Click the “+” button and select the AppleScript application you just created.
  6. Close System Preferences.

When you run a command with sudo on a macOS, it will prompt you to enter your password to authenticate. If you want to execute a command with sudo without entering your password, you need to configure sudo to allow the command to be executed without requiring authentication.

To do this, you can add an entry to the /etc/sudoers file using the visudo command. Here are the steps:

  1. Open the Terminal app on your Mac.
  2. Type sudo visudo and press Enter. This will open the /etc/sudoers file in the vi editor.
  3. Use the arrow keys to navigate to the end of the file.
  4. Press i to enter insert mode.
  5. Add the following line to the end of the file, replacing /path/to/mount_ntfs.sh with the actual path to your script:
				
					%admin ALL=(ALL) NOPASSWD: /path/to/mount_ntfs.sh
				
			
  1. Press Esc to exit insert mode.
  2. Type :wq and press Enter to save and exit the file.

Now, when you run your script with sudo, it will not prompt you for a password. However, be careful when modifying the sudoers file, as incorrect syntax can cause problems with your system.

error: Alert: Content selection is disabled!!