从Windows系统转到Mac OS X的朋友经常遇到的一个问题就是对ntfs格式移动硬盘的读写问题,这是由于两个操作系统的文件存储结构并不一致所导致的
网上有很多软件帮助Mac系统读写ntfs文件,还有人甚至推荐使用Windows虚拟机,但是其实问题并没有那么复杂,这里记录一种更为简单的处理方式
在Mac OS中,使用mount_ntfs对ntfs文件系统的硬盘进行挂载,但是默认加载方式是只读的,这导致了我们并不能对我们的ntfs移动硬盘进行写入,那么其实,我们只要将mount_ntfs的挂载方式改为读写方式就可以了,具体方法如下:
打开终端
实用工具 -> 终端
在终端中进行如下操作
切换到root身份 (高危! 谨慎操作)
sudo -s
cd /sbin
将系统自带的挂载程序改名
mv mount_ntfs mount_ntfs_orig
新建我们要的挂载脚本并编辑
vim mount_ntfs
将以下内容写入新的脚本
#!/bin/sh
/sbin/mount_ntfs_orig -o rw,nobrowse "$@"
保存退出后,更改脚本权限
chmod a+x mount_ntfs
最后,退出 root 身份
exit
这样之后,Mac就可以欢快的对ntfs格式的硬盘进行读写了,但是由于使用了 nobrowse 参数,这个参数意味着GUI不可见,即硬盘图标不会出现在桌面上,这时可以在 finder 里用 cmd+shift+G
打开跳转, 输 /Volumes 进入所有磁盘目录,找到硬盘盘符
为了方便,可以用 cmd+shift+T
将 /Volumes 保存到 finder 的左侧边栏
在升级了OS X EI Capitan之后,你将会发现在执行 mv mount_ntfs mount_ntfs_orig
的时候提示错误,这是因为OS X EI Capitan全面启用了System Integrity Protection (SIP),这个技术主要限制了root用户的权限,以提升系统的健壮性(所以当你去以root权限更改系统文件的时候,不再被允许了)
好在Mac内置提供了csrutil
工具来进行一些SIP的配置,你可以在终端中使用命令查看SIP的状态
$ csrutil status
System Integrity Protection status: enabled
如果想继续上文中的操作,我们需要暂时关闭SIP,而使用csrutil被限制在恢复模式下(Recovery mode),所以我们需要进行如下操作:
重启电脑
启动时按下Command + R,进入恢复模式
实用工具 -> 终端
然后在终端中使用csrutil,最后重启电脑
csrutil disable
reboot
这样我们就暂时关闭了Mac的SIP功能,再去进行上文中的操作了
SIP功能在系统安全方面有很大的提升,建议更改之后重新开启SIP功能