macos 读取ntfs

MAC OS X下是可以自由读取NTFS分区的,但如何写,则是很多论坛的常见问题。最近看到国外几篇不错的帖子,就顺手汇编一下,供各位参考。

在OS X 10.10和10.11中不能用以下方法解决,我是通过安装tuxerantfs_2015达到目的的

 一、使用MAC OS X自带的NTFS写功能
 要求MAC OS X版本高于10.6

 1.实现方式一:手工mount分区

 这一方式类似下面这一方法,但需要每次手工umount后再使用对应参数mount上来,非常麻烦,就不赘述了。

 2. 实现方式二:改动mount指令,自动mount分区

 [以下操作涉及修改系统,请自行衡量,谨慎操作]

 打开终端:

sudo  mv /sbin/mount_ntfs /sbin/mount_ntfs.orig

touch mount_ntfs
复制代码

 之后在你的用户主目录下会生成一个mount_ntfs的空文件,用文本编辑器打开,输入以下内容后保存
#!/bin/sh

/sbin/mount_ntfs.orig -o rw “$@”
复制代码

 下面继续回到你之前打开的终端执行:
sudo mv mount_ntfs /sbin/mount_ntfs

sudo chown root:wheel /sbin/mount_ntfs

sudo chmod 755 /sbin/mount_ntfs
复制代码

 至此,完成工作,你的系统将默认以读写的方式加载NTFS分区。今后如果需要恢复,则在终端执行:
sudo mv /sbin/mount_ntfs.orig /sbin/mount_ntfs
复制代码

 3.实现方式三:修改/etc/fstab文件,实现自动挂载

 首先确认你的NTFS分区已经挂载在系统上,打开终端执行:
diskutil info /Volumes/卷名
复制代码

 这里的卷名就是你要挂载的这个NTFS分区名,如果你没把握,也可以直接在终端输入mount,会看到类似:
/dev/disk0s2 on /Volumes/DATA (hfs, local, journaled)
复制代码

 这个”on”后面的/Volumes/DATA就是你的挂载点,DATA就是分区名。

 好,言归正传,执行diskutil info后得到类似下面的结果:
Device Identifier:        disk0s2
Device Node:              /dev/disk0s2
……
SMART Status:             Verified
Volume UUID:              B23CF4FE-EDBE-3E0A-8871-46078026CE40
复制代码

 注意将Volume UUID后面的内容拷贝出来,就是你这个分区的唯一标识号。

 现在打开/etc/fstab编辑(如果之前你没有做过其他操作,默认是没有这个文件的):
sudo nano /etc/fstab
复制代码

 然后在文件中输入:
UUID=NTFS分区的UUID none ntfs rw
复制代码

 如果你有不止一个NTFS分区,那就分行输入;完成编辑后按“ctrl-x——y——回车”完成编辑。

 此时你重启系统就会自动加载了。

 4. 实现方式四:使用网友开发的软件ntfsmounter

 直接到ntfsmounter.com下载即可。这个软件安装后在顶栏出现一个猫头,当插入NTFS分区时,点击猫头会看到所有的分区列表,点击其中一个分区,系统会自动以读写模式重新加载你选择的分区,操作还是非常方便的。如果需要开机自动加载,你还需要在系统偏好设置——账户里把这个软件加载为开机默认程序。

 此外,国内也有网友开发过类似软件,是采用一个列表窗口的形式,一时找不到了,等以后补充吧。

 5. 最后来讲讲注意事项。

 上面任何一种方法,根本上都是使用了MAC OS X自带的这个读写程序。其实MAC OS X自带的这个是一个开源程序,有兴趣研究源码的朋友可以到这里看。自带程序还存在一些已知问题:

 如果NTFS分区存在一些信息不一致,则不能加载,即上面任何一种方法都仍然是用只读方式加载了。这是因为默认的读写程序仅仅是/sbin/mount_ntfs,并没有newfs_ntfs(也就是无法格式化出一个NTFS模式),也没有类似的fsck工具。解决方法是:将你的NTFS分区挂载到Windows上,进行一次磁盘修复,如果是USB的,还要记得安全退出。
 虽然是原生的,但是Apple也没拿到Microsoft的授权或者知识分享,所以这种方式同样是危险而不稳定的。在网上有人发现会出现实际文件在而文件图标全部丢失(也就是你在Finder里看是个空盘)、拷贝文件丢失等现象。如果你不幸遇到莫名其妙的问题,第一选择仍然是到Windows上修复磁盘并安全退出。
 二、使用第三方软件
 目前常见的第三方软件就是以下两类:

 1. Paragon NTFS for MAC OS X

 目前Paragon NTFS最新是8.0版,是一款商业软件。从它网站介绍来看,它是开发了一种ufsd通用分区格式,将NTFS映射到这种格式上来(相应也有软件在Windows上将hfs等格式映射到这个格式,以在Windows上读写MAC的分区)。安装后可以在/sbin/下看到有几个文件:
-r-xr-xr-x  1 root  wheel  44584  4  7 18:47 /sbin/fsck_ufsd_NTFS

-r-xr-xr-x  1 root  wheel  61296  4  7 18:47 /sbin/mount_ufsd_NTFS

-r-xr-xr-x  1 root  wheel  57860  4  7 18:47 /sbin/newfs_ufsd_NTFS
复制代码

 可以看到它是比较齐全的,不仅有mount,还有对应的fsck和newfs,即可以自己修复分区、创建新分区。安装后在系统偏好设置里会多出Paragon的栏目,其中可以选择是否启用、挂载哪些分区等。还是非常简单易用的。
 在我个人的使用中,发现Paragon远远没有宣传的那么稳定。特别需要注意,如果你将一个文件直接拖到NTFS分区中一个文件夹的图标上(也就是拷贝到对应的文件夹),出错概率很高,而且往往是你再也找不到这个文件了,仿佛进了一个黑洞。此外,一次性拷贝大量小文件时也会有这个问题,会丢掉几个。对大量小文件,解决方法是将它们放到一个文件夹里,直接拖文件夹图标到NTFS分区,稳定很多。当然,这些只是我个人用的心得,也许只是特例。
 2. MACFuse + NTFS-3g

 MACFuse在我之前的帖子里提到过,在低版本中会随着VMWare Fusion安装;它和NTFS-3g都是免费软件,因此无版权之忧。考虑到国内搞到Paragon的方便性,其实很少有人用吧,根据国外网友的反馈,也并不稳定,如果要实现自动加载,还需要一番手工操作。这里就不细说了,感兴趣的网友自行搜索吧,这方面有详细教程。

 本文部分资料来自:

Guide: Enable native NTFS Read/Write in Snow Leopard

 写作中发现这个资源也很清晰:

10.6: Enable native NTFS read/write support

 


下面的内容还没尝试。不知道能在osx10.12下运行不


打开“终端”,输入:

  1. sudo -i
复制代码
回车,输入用户密码再回车就切换到root了,可以输入
  1. whoami
复制代码
回车来确认,如果返回是root那就对了。


方法一:配置/etc/fstab,此方法让系统开机自动以读写权限挂载NTFS分区, 推荐用此法来挂载本地硬盘
1.执行下面命令找出NTFS分区:
  1. diskutil list | grep NTFS
复制代码
命令输出的第三列就是NTFS分区的卷标。
2.执行下面命令修改/etc/fstab(需要会使用vim编辑器):
  1. vifs
复制代码
比如我有个NTFS分区的卷标是Data1,我就在/etc/fstab加上一行:
  1. LABEL=Data1 none ntfs rw,nobrowse,noowners,noatime,nosuid
复制代码
LABEL="卷标"。同理,其它分区也这么配置。

方法二:手工操作挂载, 推荐用来挂载USB移动硬盘,这个方法总共分3个步骤:
1.找出NTFS磁盘和挂载点
2.卸载NTFS磁盘
3.加上读写参数重新挂载

3个步骤的详细操作:
1.找出NTFS磁盘和挂载点,输入以下命令:
  1. mount | grep ntfs
复制代码
输出如下:
  1. /dev/disk0s1 on /Volumes/Win7boot (ntfs, local, noowners, read-only, nosuid)
  2. /dev/disk0s2 on /Volumes/Windows7 (ntfs, local, noowners, read-only, nosuid)
  3. /dev/disk0s3 on /Volumes/Programs (ntfs, local, noowners, read-only, nosuid)
  4. /dev/disk0s5 on /Volumes/Data1 (ntfs, local, noowners, read-only, nosuid)
  5. /dev/disk0s6 on /Volumes/Data2 (ntfs, local, noowners, read-only, nosuid)
复制代码
第一列是NTFS格式 磁盘第三列挂载点,括号内的是 挂载参数
2.根据以上的信息,来卸载当前挂载的NTFS磁盘,比如要卸载 /dev/disk0s1,就执行下面的命令:
  1. umount /dev/disk0s1
复制代码

用同样的方法来卸载其它的磁盘。这里要*注意*如果磁盘上有文件被打开,那么这个磁盘是卸载不了的

3.还是以/dev/disk0s1为例说明怎么以读写方式挂载NTFS。从步骤1中的第三列找到默认的挂载点,执行下面命令创建它:

  1. mkdir -p /Volumes/Win7boot
复制代码
执行下面命令来以读写方式挂载:
  1. mount_ntfs -o rw,auto,nobrowse,noowners,noatime  /dev/disk0s1 /Volumes/Win7boot
复制代码
以上命令的 rw 选项添加了读写权限,到这里完成一个磁盘的挂载,其它的用同样的方法。 如果是移动硬盘,在-o后再加一个nodev选项。
最后,
1.此方法挂载的磁盘不会显示在Finder边栏的“设备”里。所以我把/Volumes添加到Finder的“个人收藏”了。
2.系统读写NTFS有时会“弄脏”磁盘,windows开机的时候需要检查磁盘,一般不会损坏文件,如果担心损坏那就不要让系统读写NTFS磁盘了。
3.教程的步骤在10.8.4验证过,使用过程中没有出现损坏文件的情况,如果使用过程中你的文件损坏了与作者无关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值