Duet G. Blog

Keep It Simple, Stupid

使用NTFS-3G在macOS上免费读写NTFS驱动器

这是个救穷不救急的方法,如果着急用,建议还是花139块(或19.95刀)去买个Paragon NTFS for Mac

出于个人原因,突然需要从一台老iMac里拷贝出大量的文件,这让我本来就捉襟见肘的储存空间更加的雪上加霜。万般无奈下从京东买了块致态的500GB固态硬盘,把以前笔记本里的1TB机械硬盘换了出来。由于硬盘上本就还有数据,不能格式化,所以就只能在NTFS的文件系统下连接iMac了。

众所周知macOS对NTFS是只读的,在“因为是个一次性的小需求所以不想花钱买软件”的指导思想下,我只得选择安装商业软件,并在试用期内把问题搞定。然而因为拖延症以及我对“数据读写也要耗时”这个事情从没有像这次一样直观的体验,令我在这台iMac上陆续装了三款免费试用的NTFS装载软件,并逐一都过了期。

然而我的活儿却还没干完。

思前想后,决定找一个完全免费的解决方案,通过搜索找到了NTFS-3G这样一款开源跨平台的NTFS驱动。不过想要在macOS上使用,还需要借助macFUSE才可以。下面写的基本上来自于macFUSE官方Wiki上有关NTFS-3G的指导。如果英语不错的话,也可以直接去看原文。

首先由于需要编译,所以你需要在Mac上安装Xcode,确保Command Line Tools安装到系统。如果没有的话可以在终端里使用这条命令:

sudo xcode-select --install

接下来需要安装Homebrew来在终端里实现软件包的安装和管理。

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

较低版本的macOS是无法通过官网的 .pkg 包完成安装的,会验证你的系统版本,所以用命令行安装是比较稳妥的方式,虽然也会提示版本低,但不会终止安装。

接下来安装macFUSE,这个直接到官网下载最新的安装包就可以了,目前最新的是macFUSE 4.5.0,注意安装完成后请务必重启系统

以上准备工作完成后,就可以照着官网Wiki上写的按步骤操作了。其间会有下载和编译的过程,终端窗口不会有任何进度提示,还请耐心等候。

首先是从Homebrew安装NTFS-3G

brew tap gromgit/homebrew-fuse
brew install ntfs-3g-mac

完成之后插上你的NTFS移动硬盘,macOS识别后在终端使用以下命令查找硬盘分区的名称(如/dev/disk1s1)

diskutil list

确定之后就可以手动挂载NFTFS分区了,注意把下面命令中的/dev/disk1s1更换成你硬盘实际分区的名称

# 还没弹出移动硬盘的话要先把分区卸载掉
sudo diskutil unmount /dev/disk1s1
# 再用 ntfs-3g 挂载硬盘
sudo mkdir /Volumes/NTFS
sudo /usr/local/bin/ntfs-3g /dev/disk1s1 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache
# 或者上条命令也可以换成下面这条
sudo /usr/local/sbin/mount_ntfs /dev/disk1s1 /Volumes/NTFS

代码输入之后,桌面上应该就会显示出来新挂载的NTFS硬盘了,名字会变成NTFS-3G相关的名字,但内容是没错的。打开之后就可以写入数据了。不用的时候点右键推出就好,再用的时候再用命令来挂载。

至于自动挂载,官方Wiki也给了方法。但由于大多数情况用的还是移动硬盘来回拷贝文件,而不是台式机内多挂了一个硬盘,所以在这里就不再详述了,有需求的直接去Wiki查阅就好。