Mac下如何不借助第三方工具实现NTFS分区的可写挂载
问题背景
我想很多使用Mac的同学都会遇到读写NTFS磁盘的问题,因为默认情况下Mac OSX对NTFS磁盘的挂载方式是只读(read-only)的,因此把一个NTFS格式的磁盘插入到Mac上,是只能读不能写的,用起来很是不便。
因此也就出现了一些第三方工具,例如Tuxera NTFS for Mac、Paragon NTFS for MAC等,这些工具都可以实现Mac下NTFS的写操作,但是这些工具都是收费的,当然也有些破解的版本,但是破解软件毕竟存在安全风险,so,I don't really like that.
此外Tuxera也提供了开源的NTFS读写方案:NTFS-3G,基于GPL授权的NTFS-3G也可以通过用户空间文件系统在Mac OS X上实现NTFS分区的读写。这个方案也比较不错,只是需要简单的安装,本文不再展开。具体的可以参考官方链接:http://www.tuxera.com/community/open-source-ntfs-3g/
但其实,我们完全可以不借助任何第三方工具就能解决这个问题,因为其实OSX原生就是支持NTFS的。后来由于微软的限制,苹果把这个功能给屏蔽了,但是我们可以通过命令行手动打开这个选项。
How to do that?
mount查看磁盘挂载情况
thatsitdeMacBook-Pro:~ thatsit$ mount
/dev/disk4s2 on /Volumes/Untitled (ntfs, local, nodev, nosuid, read-only, noowners)
thatsitdeMacBook-Pro:~ thatsit$
这时候如果我们要实现/dev/disk4s1分区的可写挂载,我们只需要做做一下两个步骤:卸载、重新挂载
卸载
thatsitdeMacBook-Pro:~ thatsit$ sudo umount /Volumes/Untitled/
重新挂载
thatsitdeMacBook-Pro:~ thatsit$ sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk4s2 /Volumes/Udisk/
这时候/dev/disk4s2已经以读写的方式挂载到/Volumes/Udisk/了,下面我们来进行挂载结果的确认
确认挂载
thatsitdeMacBook-Pro:~ thatsit$ mount|grep ntfs
/dev/disk4s2 on /Volumes/Udisk (ntfs, local, noowners, nobrowse)
thatsitdeMacBook-Pro:~ thatsit$
测试写入
thatsitdeMacBook-Pro:~ thatsit$ cd /Volumes/Udisk/
thatsitdeMacBook-Pro:Udisk thatsit$ touch test_writing
thatsitdeMacBook-Pro:Udisk thatsit$ ll|grep test_writing
-rwxr-xr-x 1 thatsit staff 0 12 24 17:14 test_writing
thatsitdeMacBook-Pro:Udisk thatsit$
thatsitdeMacBook-Pro:Udisk thatsit$ echo heheda >> test_writing
thatsitdeMacBook-Pro:Udisk thatsit$ cat test_writing
heheda
thatsitdeMacBook-Pro:Udisk thatsit$
thatsitdeMacBook-Pro:Udisk thatsit$ ll|grep test_writing
-rwxr-xr-x 1 thatsit staff 7 12 24 17:15 test_writing
thatsitdeMacBook-Pro:Udisk thatsit$
上述挂载参数的详细说明:
mount -t ntfs -o rw,auto,nobrowse /dev/disk4s2 /Volumes/Udisk/ -t ntfs # 执行要挂载的分区文件系统格式
-o # 执行挂载的选项
rw # read-write,以读写的方式挂载
auto # 自动检测文件系统,此参数可以省略
nobrowse # 这个选项非常重要,因为这选项指明了在finder里不显示这个分区,只有打开了这个选项才能将磁盘以读写的方式进行挂载
/dev/disk4s2 # 要挂载的分区,也就是我们在mount命令中看到的盘符
/Volumes/Udisk/ # 挂载点 * /Volumes/Udisk这个目录是需要存在的,如果不存在需要手动创建下:sudo mkdir /Volumes/Udisk
* 如果目录不存在会收到如下报错:
mount: realpath /Volumes/Udisk: No such file or directory
通过上面的测试大家也看到了,此时的NTFS分区已经是可写的了;但是这个时候还存在另一个小问题,因为我们在挂载的时候使用nobrowse选项,这个分区在finder里是不显示的。
总会有些同学不习惯一直使用命令行进行操作,所以需要高解决这个问题:
解决办法其实很简单,因为这个分区是挂/Volumes下的,我们把这个目录在桌面做一个软链接就OK了。
创建软链接
thatsitdeMacBook-Pro:Udisk thatsit$ sudo ln -s /Volumes/Udisk/ ~/Desktop/Udisk
Password: # <----输入用户密码
thatsitdeMacBook-Pro:Udisk thatsit$
效果如下:桌面上会显示如下的盘符,点击即可进入Finder

----Done----
参考链接:
https://zh.wikipedia.org/wiki/NTFS
Mac下如何不借助第三方工具实现NTFS分区的可写挂载的更多相关文章
- Mac 下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- python-web自动化-文件上传操作(非input标签的上传,需要借助第三方工具)
文件上传操作 一.文件上传分两种情况:1. 如果是input可以直接输入路径的,可以直接调send_keys输入路径 2. 非input标签的上传,需要借助第三方工具: 2.1 Autolt 需 ...
- Mac 下的矢量图设计工具
Mac 下的矢量图设计工具 一图胜千言.一张清晰的示意图无论对于系统设计,流程梳理,还是其他的方方面面,都非常重要. 曾经亲见一位老同事把 FreeHand 这个矢量绘图工具用得出神入化,并且非常成功 ...
- MAC下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- Mac下Supervisor进程监控管理工具的安装与配置
Supervisor是一个类 unix 操作系统下的进程监控管理工具. Supervisor是由 Python 写成,可用 Python 的包安装管理工具 pip(Python Package Ind ...
- MAC下调试JSON接口的工具(HTTP抓包工具)
MAC下的HTTP接口抓包工具,专业级: 专门做JSON接口测试的工具,简单好用!
- 【MAC】Mac下部分常用的小工具
Homebrew: 官方介绍:The missing package manager for OS X(OS X 不可或缺的套件管理器) /usr/bin/ruby -e "$(curl - ...
- Mac下替代Total Commander的工具推荐
[推荐]:Nimble Commander 轻量小巧,免费版与收费版区别不大,比较稳定,支持sftp等其他网络存储,支持自定义热键,预览等. http://magnumbytes.com/ [其他]: ...
- Mac下使用Wine安装正则表达式工具RegexBuddy 4
下载: (链接: https://pan.baidu.com/s/1bzRae6 密码: b5d3) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/p ...
随机推荐
- 武汉科技大学ACM:1004: Lake and Island
Problem Description 北园孩子的专属福利来啦~学校从北区宿舍到湖心岛修建了一条通道让北园的同学们可以上去一(kuang)同(xiu)玩(en)耍(ai),这一天,IcY向ahm001 ...
- Css预处理器实践之Sass、Less大比拼
xwei | 2012-07-07 | 网页重构 什么是CSS预处理器? Css可以让你做很多事情,但它毕竟是给浏览器认的东西,对开发者来说,Css缺乏很多特性,例如变量.常量以及一些编程语法,代码难 ...
- Installing Mp4box in centos 6
Installing Mp4box in centos 6 Installing Mp4box in centos 6Login to the server cd /usr/local/src/ ...
- NET Core & VS Code 之路(2) Web API
NET Core & VS Code 之路(2) Web API 开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 20 ...
- Centos7 打开80端口防火墙命令
iptables -I INPUT -p TCP --dport 80 -j ACCEPT
- 宏定义 button 方法 --备
定义 #define BARBUTTON(TITLE, SELECTOR) [[[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButto ...
- 为什么c程序里一定要写main函数
一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号’_main’. 那么这个错误信息可能与文件c0s.ob ...
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
在AlertDialog中使用自定义的View,如果View中有EditText,在上面点击,默认是跳不出软键盘的,不是焦点的问题.解决方法,有两种,一是把AlertDialog换成Dialog,但这 ...
- curl 提交请求
http://forums.phpfreaks.com/topic/194255-curl-sending-array-as-post-value/ http://www.cnblogs.com/ch ...
- css属性之transform
定义和用法 transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 实例 旋转 div 元素: <!DOCTYPE html> < ...