mac OS 官方的版本,只能讀 NTFS 格式硬碟的檔案,無法寫入。目前Max用的版本是 macOS 10.15.6 Catalina. 已經可以寫入檔案 NTFS 格式硬碟。
替代的解法是修改 /etc/fstab 檔案。參考圖文教學:
https://max-everyday.com/2019/10/macos-catalina-10-15-access-ntfs/
上面的替代解法,實際上使用起來有2點不太方便,建議使用本文使用的解法:
- 插入的硬碟不會顯示在Finder 左邊 shorcut 裡。
- 有些 fstab 裡雖然LABEL寫了 Untitled ,但就是還是無法寫入!
附註 1:如果是使用ntfs-3g 的解法,每次電腦「升級」有可能會需要重新來一次,如果是小改版通常還是可以繼續使用DIY過的版本,重大升級通常需要重新使用csrutil 一次。
附註 2:macOS 10.15 無法支援32-bit軟體早已經在 macOS 10.13.4 就已經開始會跳出提醒「這個程式需要升級,請聯絡開發者進行更新相容性」,不過在舊版 macOS 10.14 依舊都還能使用,直到 macOS 10.15 更新後才真正全部停用 32位元應用程式支援。
建議新的外接式硬碟,似乎格式化為 exFat 會輕鬆很多,少掉這個轉換的問題。
圖文攻略開始:
Step 1. 安裝 NTFS-3G
Step 2. 安裝/更新 Fuse for OS X
這個 osxfuse 也常在更新,如果遇到問題(例如:檔案無法顯示出來)時,除了更新下面 NTFS-3G 的版本,也要更新 osxfuse 版本。
安裝檔下載位置:
https://github.com/osxfuse/osxfuse/releases
附註:如果你在 macOS 10.15 catalina 之前就已經安裝過 osxfuse,請先去重新下載新的版本,因為舊的版本無法相容在新的macOS 10.15.
Step 3:置換macOS 系統用的 mount_ntfs
詳細攻略如下:
Step 3-1: 安裝 homebrew
install homebrew
First you must have installed the «homebrew» package manager
https://brew.sh/index_zh-tw.html
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
在終端機命令列提示貼上這個。
Step 3-2: 更新 brew
brew update
Step 3-3: 安裝 osxfuse
下載網址 FUSE
https://github.com/osxfuse/osxfuse/releases
下載後,請點 2下 dmg 檔進行安裝。
說明1:osxfuse 會 copy osxfusefs.fs 到目錄 /Library/Filesystems/ 下。如果這目錄下沒有 osxfuse 開頭檔案,會有問題。
說明2:這個這裡遇到版本大改,可能需要定期更新。
Step 3-4: 安裝 ntfs-3g
brew install ntfs-3g
說明,這滿神奇的,居然是下載到好心人修改過的版本,是 2017.3.23_1
如果遇到這一個錯誤:
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
請執行這行指令來安裝 command line tools
xcode-select --install
This will bring up a prompt to install the necessary command line tools.
重開機,按住 Command+R 進 recovery mode
choose utilities>terminal, then write in the terminal the command below
在最上面的選單裡,找到「工具」,下拉可以看到 Terminal,在 Terminal 裡執行指令:
csrutil disable
正常重開機。 後請開啟 Terminal 執行下列指令:
sudo mount -uw / killall Finder sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig sudo ln -s /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin/mount_ntfs /sbin/mount_ntfs
- 說明1:這是要置換掉Mac OS X 原本內建的 mount_ntfs 為 好心人 DIY 過的版本。
- 說明2:/usr/local/ 這個目錄在 recovery mode 裡沒有。
- 說明3:你的 ntfs-3g 版本(上面指令裡黑體字的部份)可能會跟我不同,需要調整 path 的路徑,可以先用 ls 去看。
- 說明4:macOS 10.15 catalina 的 /sbin/ 目錄在 csrutil status = disable 情況下,還是 read-only 上面指令會失敗請改使用修改 /etc/fstab 檔案。
要驗證上面是否成功,可以使用指令:
ll /sbin/mount_ntfs
來看看這一個路徑的檔案,是指到那裡,正確的話,應該是指到:
/usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin/mount_ntfs
也可以使用指令:
ll /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin/mount_ntfs
來看看,實體檔案,是否存在。
如果你和我一樣,使用 2017.3.23_3 版本,針對 NTFS 格式的硬碟,只能看到目錄,無法顯示檔案的問題。解法是修改需要手動修改 /usr/local/Cellar/ntfs-3g/2017.3.23_3/sbin/mount_ntfs 檔案的 line:15
line 15 “-o local” 修改為 “-o local,allow_other,auto_xattr”,如此一來就可以看到「目錄」和「檔案」。
最後,請再重開機一次,再進 recovery mode ,在 Utility 裡執行 Terminal,並執行指令:
csrutil enable reboot
上面的 reboot 指令會重開機,接下來就搞定了,在 macOS 10.15 catalina 環境下,NTFS 格式的 USB 可以寫入和刪除檔案(Move to Trash)。
如果網友DIY過的版本不好用,需要復原回去原本Mac OS X 官方版本,只需要再進一次 recovery mode 去把之前備份的 /sbin/mount_ntfs.orig 搬回去 /sbin/mount_ntfs 即可。