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)"
Step 4: Use Homebrew to install NTFS-3G.
brew tap gromgit/homebrew-fuse
brew install ntfs-3g-mac
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.
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.
- Open the Terminal app on your Mac.
- Type “nano mount_ntfs.sh” and press enter to create a new shell script.
- 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. - Save the script by pressing Ctrl+O and then enter. Then exit by pressing Ctrl+X.
- 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:
- Open Script Editor on your Mac (you can find it in Applications > Utilities).
- Create a new script by selecting File > New or pressing Command+N.
- 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.
- Save the AppleScript by selecting File > Save or pressing Command+S.
- Choose a name for the script and select “Application” as the file format.
- Click “Save”.
- Open System Preferences > General > Login Items.
- Click the “+” button and select the AppleScript application you just created.
- 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:
- Open the Terminal app on your Mac.
- Type
sudo visudo
and press Enter. This will open the/etc/sudoers
file in thevi
editor. - Use the arrow keys to navigate to the end of the file.
- Press
i
to enter insert mode. - 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
- Press
Esc
to exit insert mode. - 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.