Mac上安装ntfs-3g过程整理
天空巨鼠
编辑于 2021年09月21日 23:23
收录于文集
共9篇

前言

在购买转接⼝以前,我使⽤移动硬盘之类的设备,主要是使⽤树莓派通过⽹络进行传输的。 

由于使⽤移动硬盘的⽬的更多的是为了看⾥⾯的电影,所以⼀开始只是在树莓派上安装了nginx通过http的⽅式将播放地址复制进播放器中播放的形式操作的。虽然有那么⼀点不⽅便,但还是坚持了很⻓时间。后来觉得光是单向查看也不⽅便,偶尔也需要保存⼀些⽂件进去,所以就配置了⼀下samba⽤来把树莓派作为NAS使⽤,⼀开始也感觉还是挺⽅便的,不过后来想到要使⽤U盘这⼀类设备的话,通过这种间接的⽅式也不是很⽅便,所以就还是选择买了⼀个扩展坞,偶尔有需要的时候也可以带出去⽤来演示⽤。 

要在mac上正常读写ntfs系统的⽂件,好像有三种⽅式,⼀种是使⽤Mounty或者类似的软件,这款软件的原理是通过 MacOS⾃带的可以读写ntfs的隐藏功能实现的,但是据说稳定性不佳,有一定概率会失去数据,虽说可能是⽤户在使⽤的时候没有正确弹出设备的情况下就将其拔出引起的;第⼆种就是使⽤⼀些商业的ntfs读写技术,这些软件⽹络上也是可以搜索到的, 似乎不同的商业软件会有⼀些区别,不过稳定性上肯定是⽐mounty这样的软件更好;第三种就是使⽤ Linux中⼴泛使⽤的ntfs-3g,这种⽅式实际安装的步骤其实也并不复杂。我最后选择的就是这个第三种⽅法,毕竟免费也相对来说比较成熟。

准备及安装

需要的软件:

  1. macFUSE

  2. Homebrew

要在Mac上使用其他的文件系统,首先需要安装一款名叫macFUSE的软件,具体关于这款软件的介绍可以自己百度。官网地址:https://osxfuse.github.io/

macFUSE官网

点击右侧的下载就可以获取pkg格式的安装包,可以看到该软件已经适配了M1版本。

Homebrew配置

具体的添加方式可以参考维基页面上关于安装ntfs-3g的介绍,基本上都可以顺利的安装。

osxfuse Github Wiki

其实Homebrew自带的资源中是事先包含有ntfs-3g的,但是如果查看这个包的详情会发现brew已经把这个包禁用了,即使你已经事先安装了FUSE,Homebrew也无法检测到导致不能正常安装。

依据流程中的介绍,需要另外添加FUSE推荐的包含了可以正常的ntfs-3g的源。

代码块
Shell
自动换行
复制代码
brew tap gromgit/homebrew-fuse
brew install gromgit/fuse/ntfs-3g-mac
//或者直接写ntfs-3g-mac,注意名称上与自带的ntfs-3g区分
brew install ntfs-3g-mac
复制成功

使用

这个软件是通过编译源码的形式安装的,安装以后就可以直接在终端输入ntfs-3g挂载ntfs格式的硬盘了。因为Mac系统默认会自动挂载插入的移动存储设备,所以需要先手动卸载再使用命令挂载,这也是和Mounty这类软件的原理是一样的。

由于Mac上的命令和目录结构有些地方还是和Linux有些区别的,所以一些命令在使用的时候需要根据实际情况调整。

Mac下的根目录结构

可以看到在Mac上是没有/mnt这个目录的,Mac下可移动设备的挂载都是在/Volumes目录下进行的。具体的挂载点是可以根据自己的喜好进行的,如果选择挂载在一个已经有文件的目录下,那个相应的这个目录中原本的文件就会被隐藏起来,变为相应设备中的数据,在卸载以后该目录下的原始数据又会重新出现,不过一般还是推荐准备一个空白的目录挂载,防止出现误删除的操作。

具体的设备文件的名称可以通过Mac的磁盘工具diskutil获取。

使用diskutil list查看磁盘信息

如果存在分区的,在挂载时需要指定具体的分区,格式就可以参考diskutil给出的信息。

代码块
Shell
自动换行
复制代码
//先卸载
//1. 通过设备文件名称卸载
sudo umount /dev/xxxx
//2. 使用挂载点目录名称卸载
sudo umount /Volumes/xxxx
//使用ntfs-3g重新挂载到指定的目录
sudo ntfs-3g /dev/xxxx /mnt/xxxx

//其中的xxx需要替换为实际的名称
复制成功

或者使用官方wiki的用法

代码块
Shell
自动换行
复制代码
# unmount if necessary
sudo diskutil unmount /dev/disk1s1
# mount with 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
# alternatively...
sudo /usr/local/bin/mount_ntfs /dev/disk1s1 /Volumes/NTFS
复制成功

卸载也可以通过访达中的弹出按钮实现。

测试

简单的通过写入一个大文件进行测速,读取速度大约在18.8MB/s左右,写入速度大约在16.4MB/s,实际影响因素有很多,仅供参考。

总结

以上就可以正常使用ntfs系统了,但是这样手动的操作会比较麻烦,网上也有教程演示如何使用这个ntfs-3g替换掉系统自带的挂载命令以便实现自动使用ntfs-3g挂载硬盘。不过由于这样的操作需要先关闭系统完整性保护,而我又不愿意反复重启去折腾,就没有继续操作下去,有兴趣的朋友可以自行百度一下,教程很多,也可以参照官方wiki的介绍进行操作。

有任何问题都欢迎在评论区中留言。