最近在mac上插上自己的U盘和移动硬盘,发现只能读,不能写,再看下文件系统发现是NTFS,然后网上各种查资料,发现的确在mac上是不支持读写NTFS的,说是啥NTFS是微软的系统,然后mac这边由于啥原因把识别NTFS的功能屏蔽了,然后网上有方法是开启原生的NTFS的读写,但是我试了不行(具体方法大家可以找来试试,反正我的电脑是不行的额,我的电脑版本是10.13.4),后来又找到第三方的软件:
1、mounty 这个软件我之前都能用,过后不知道啥情况就无缘无故不能用了
2、Tuxera NTFS ,付费软件,找了很久没找到破解版,然后也说破解版有各种问题
3、Paragon NTFS,付费软件,下了试用了哈,的确好用,找了很久也没找到破解版
在我苦苦找寻了的路上我已经放弃了,觉得已经解决了不了(其实是不想花那个钱,笑哭),最后我决定寻找一个方法,自己手动去挂载(没办法,穷啊)
最后我找到的方法是在mac上安装osxfuse和ntfs-3g,然后使用ntfs-3g进行手动去挂载
备注1:osxfuse和ntfs-3g这两个软件都要安装,缺一不可!!!!!
备注2: 如果brew安装不了这两个软件,可以去gethub上寻找dmg文件进行安装
参考链接:mac挂载NTFS文件系统设备的参考链接
我发现这个参考链接的这一步“C.替换原生的/sbin/mount_ntfs
”这个我也设置了,但是设备也不会自动挂载,这个让我相当纳闷,最后我实在没办法了,不自动挂载,那我就自己写歌脚本去挂载和卸载吧(没办法中的办法)
我的挂载脚本思路是这样的:首先枚举mac上的外接设备,然后取出外接设备的第一个分区没,然后使用ntfs-3g进行挂载,挂载代码如下,用python写的脚本
import os
disk = []
#get external devices
cmd = "sudo diskutil list external"
external = os.popen(cmd).read().split("\n")
for line in external:
if "/dev/disk" in line:
disk.append(line.split()[0] + "s1")
#mount disk ntfs
cmd = "sudo ntfs-3g "
for onedisk in disk:
cmd = cmd + onedisk + " /Volumes/" + onedisk.split("/")[-1]
os.system(cmd)
卸载思路和挂载思路一样,枚举所有外接设备,然后卸载掉所有设备的第一个分区。代码如下:
import os
disk = []
#get external devices
cmd = "sudo diskutil list external"
external = os.popen(cmd).read().split("\n")
for line in external:
if "/dev/disk" in line:
disk.append(line.split()[0] + "s1")
#mount disk ntfs
cmd = "sudo umount "
for onedisk in disk:
cmd = cmd + onedisk + " && sudo rm -rf /Volumes/" + onedisk.split("/")[-1]
os.system(cmd)
备注:挂载NTFS设备的时候不需要去创建挂载目录,目录没有,mac会自动创建,但是卸载后目录他不会自动删除文件夹,所以在卸载的时候我做了删除文件夹的操作。
以后如果插入NTSF设备的时候,只需要运行一下挂载脚本就可以挂载NTFS设备了,然后就可以对设备进行读写,如果要拔掉设备的话,执行一下卸载脚本就可以了。
如果你想直接在访达里面操作挂载的设备的话,可以将挂载的目录/Volumes到访达里面,步骤如下:
1、打开访达-前往-前往文件夹,
2、然后输入“/Volumes”,点击前往,然后就在此文件夹目录下面了,
3、最后停留在此页面,输入快捷键“Control-Command-T”就把文件夹添加到了个人收藏
如果大家有其他好的免费方法挂载NTFS的话,欢迎交流。