使用 MacOS 原生方法讀寫 NTFS 格式

NTFS(New Technology File System 是一個由 Microsoft 發展標準檔案系統,FAT32 則是另一個常用的檔案系統的例子。檔案系統定義了資料(或檔案)如何存儲於儲存裝置,或從儲存裝置中檢索及讀取。不過,在預設情況下 Mac OSX 只支持讀取 NTFS,不能寫。雖然網路上有軟體可以啟用 NTFS 的寫入,但是其實,只要幾個簡單的步驟,便可以啟用,而且是完全免費。

檢查外接硬碟名稱

開啟終端機(terminal)並輸入, 查詢硬碟資訊

1
diskutil list

紅框處即可查詢硬碟名稱

硬碟名稱盡量避免空白符, 若有空白符號建議可以先到 windows 電腦改名, 若不方便須以 \040 代替空格

更改 /etc/fstab 文件

緊接著更新 /etc/fstab 文件,在 terminal 執行下面指令, 打開 fstab 文件檔

1
sudo vi /etc/fstab

指令說明

  • sudo 以管理者權限執行, 需輸入密碼
  • vi 用終端機的 vim 文本編輯模式開啟檔案(/etc/fstab)

vim 操作

  • 進入 vim 模式後按下 a 即可進入 insert(編輯模式)
  • 編輯完成後按下 ESC 離開編輯模式
  • 按下 :wq 儲存並離開

若不熟悉 vim 的編輯方式可以改執行 sudo open /etc/fstab, 此指令會以一般文本編輯器開啟檔案

寫入以下內容

1
LABEL=dylan none ntfs rw,auto,nobrowse

這邊的 dylan 是我的硬碟名稱, 注意須將此處改為所查詢到的硬碟名稱, 後面的ntfs rw 表示把這個分區掛載為可讀寫的 ntfs 格式。
最後 nobrowse 非常重要,因為這個代表了在 finder 裡不顯示這個磁碟,如果不打開的話掛載是不會成功的。

現在插入此硬碟都可以正常寫入檔案了,若之後有其他 NTFS 格式硬碟需要做寫入再重複寫入上述內容即可

捷徑

到這部基本上已經完成了,剩下一個小問題, 目前這個硬碟在 finder 裡不顯示了,那麼我們要怎麼找到它呢
解決辦法其實很簡單,由於現在這個硬碟是掛在 /Volumes 資料夾下的,我們只要找到這個資料夾,然後把裡面的硬碟在桌面上做一個捷徑就行了。

開啟終端機輸入

1
sudo ln -s /Volumes/dylan ~/Desktop/dylan

此指令會將目標 /Volumes/dylan 複製一個捷徑, 放到桌面上, 並命名為 dylan

建立快捷方式後,又出現了新的問題,無論有沒有插入硬碟。這個捷徑 icon 會一直在桌面,不太美觀。

隱藏桌面捷徑,拖入 Finder 側欄

打開 Finder 將桌面的捷徑拖入側邊欄, 方便之後快速造訪

隱藏桌面硬碟捷徑,打開 terminal 執行

1
2
cd ~/Desktop
mv dylan .dylan

若要退出硬碟時

禁用 NTFS 寫入

如果不需要 NTFS 的寫入,只需刪除 /etc/fstab 便可,輪入下面的指令

1
sudo rm /etc/fstab

疑難排解

啟用 NTFS 的寫入操作之後,你有時可能會發現,插入外接硬碟後,無法正常讀取,這是由於你之前沒有在 Windows 上做安全移除所造成。這是因為蘋果沒有 fsck 去修復 NTFS 上的問題,去清理 log 文件。您可以通過以下方法去驗證是這個問題,先插入儲存裝置,然後在 Terminal 輸入以下命令

1
sudo dmesg

應該會顯示以下訊息

1
2
3
4
5
NTFS driver 3.11 [Flags: R/W].
NTFS volume name DEVICE_NAME, version 3.1.
NTFS-fs error (device /dev/dylan, pid 345): ntfs_system_inodes_get(): $LogFile is not clean. Mount in Windows.
NTFS-fs error (device /dev/dylan, pid 345): ntfs_mount(): Failed to load system files (error 30).
NTFS-fs error (device /dev/dylan, pid 345): ntfs_mount(): Mount failed (error 30).

解決方案

  1. 再次把儲存裝置連接到 Windows 中,通過安全移除斷開連接。
  2. 還原之前的備份,指令是
    1
    sudo mv /sbin/mount_ntfs.orig /sbin/mount_ntfs

參考資料

如何在Mac OS X上讀寫NTFS格式的外置硬碟機/USB? (含疑難排解)
Mac OSX 打開原生自帶讀寫NTFS功能