Mac下NTFS格式外存器不能写入问题的解决方案

Author Avatar
Fa1c0n 3月 01, 2017
  • 在其它设备中阅读本文章

很多人在用Mac的时候,使用的U盘,移动硬盘大多是NTFS格式的。插入Mac后,默认情况下Mac不能读写NTFS格式的外存,普遍的解决方案是通过安装第三方软件如Paragon NTFS For Mac等实现NTFS的读写,但Paragon是商业软件,需要购买使用。

大部分情况下,外存设备插入Mac后不能写入,有人认为Mac根本不支持NTFS格式系统的写入,事实是,Mac本身对于NTFS的读写支持的非常优秀,只是检测到外存设备时,Mac并没有默认打开读写的功能而已。开启的方法如下:

方案一:适用于本机硬盘或固定移动硬盘

在终端中输入如下命令:

diskutil list | grep NTFS

在输出的结果中的TYPE列为Windows_NTFS的即为NTFS分区,需要记录一下卷标。然后键入:

sudo vifs

后,会进入fstab的vi编辑模式,然后输入以下内容:

LABEL=FA1C0N-EXT-DISK none ntfs rw,nobrowse,noowners,noatime,nosuid

注意,FA1C0N-EXT-DISK是刚才记录的卷标名,按下Esc,输入:wq后退出以后每次开机都会自动挂载为可读写格式。

方案二:适用于移动硬盘或U盘等设备

在终端中输入如下命令:

mount | grep ntfs

本地输出结果如下:

/dev/disk3s8 on /Volumes/FA1C0N-EXT (ntfs, local, nodev, nosuid, read-only, noowners)

得到以上信息后,可以根据此信息卸载当前的挂载点,如当前的挂载点为:/dev/disk3s8,则执行下面的命令:

umount /dev/disk3s8

注:若当前挂载点有文件被打开或程序占用,则会出现卸载失败。解决方法:退出当前所有可能占用该挂载点中文件的程序即可。

执行下面的命令创建一个挂载目录:

mkdir -p /Volumes/FA1C0N-EXT-DISK

执行以下命令实现读写挂载:

mount_ntfs -o rw,auto,nobrowse,noowners,noatime  /dev/disk3s8 /Volumes/FA1C0N-EXT-DISK

以上命令的 rw 选项添加了读写权限,到这里完成一个磁盘的挂载,其它的用同样的方法。如果是移动硬盘,在-o后再加一个nodev选项。挂载成功的磁盘并不会在Finder边栏中出现,需要访问到/Volumes/FA1C0N-EXT-DISK目录即可访问该磁盘。

文章中第二种方法虽然方便,但每次手动输入命令,时间长了或许会忘记,故作者写了一个小脚本,在执行完成后自动打开当前挂载的NTFS分区,源码如下:

#!/bin/bash

#
# Author: Fa1c0n
# Copyright (c) https://blog.fa1c0n.com
# Version: 1.0
#

mount | grep ntfs
echo "请输入要重新挂载的分区标识(on左侧):"
read PARTITION
umount $PARTITION
mkdir -p /Volumes/FA1C0N-EXT-DISK
mount_ntfs -o rw,auto,nobrowse,noowners,noatime $PARTITION /Volumes/FA1C0N-EXT-DISK
echo "挂载成功!感谢使用!"
open /Volumes/FA1C0N-EXT-DISK

创建该脚本,可以点击此处下载或在终端中进入指定目录后执行:

touch ntfsRemount.sh
vi ntfsRemount.sh

在进入vi后,按下i键即可进入编辑模式,将上面的源码粘贴到文本区域,按下Esc键,输入:wq后即可保存。保存后输入下列指令为当前脚本程序增加可执行权限:

sudo chmod +x ./ntfsRemount.sh

执行完成后,每次需要挂载时,只需要输入:

sudo sh ntfsRemount.sh

即可挂载可读写的NTFS分区。