macOS是蘋果公司個人電腦操作系統(tǒng),由于未知的原因,macOS沒有給默認的用戶提供NTFS文件系統(tǒng)的寫入權(quán)限,當用戶將包含NTFS格式分區(qū)的磁盤連接電腦主機后,macOS默認以“只讀”的方式掛載,為用戶提供最基本的文件讀取服務(wù)。因此,很多第三方公司開發(fā)了收費應(yīng)用,實現(xiàn)macOS中對NTFS文件系統(tǒng)的寫入功能。例如NTFS for Mac這款軟件,就可以實現(xiàn)和操作系統(tǒng)無縫結(jié)合,當用戶插入包含NTFS分區(qū)格式的磁盤后,可以自動使用“讀寫”的模式掛載磁盤分區(qū)。
相比收費的商業(yè)軟件,macOS操作系統(tǒng)原生提供了NTFS格式分區(qū)讀寫功能,不過因其具體操作比較繁瑣,不便于日常應(yīng)用。筆者利用bash腳本編程技術(shù),提出了一種使用腳本命令的方式,可以快速方便地將NTFS格式分區(qū)以“讀寫”模式掛載和卸載的解決方案,將macOS原生對NTFS支持的特性和簡便易操作的特性完美結(jié)合。以下將詳細介紹實現(xiàn)原理和基本實現(xiàn)應(yīng)用。
macOS操作系統(tǒng)對移動存儲設(shè)備采用了類似Unix系統(tǒng)的處理方式,當移動設(shè)備物理上連接后,需要先掛載(可以使用控制臺中的mount命令實現(xiàn))到現(xiàn)有的文件系統(tǒng)目錄樹上才能訪問使用。默認macOS對NTFS的掛載是“只讀”,而實際上macOS操作系統(tǒng)提供了完善的NTFS格式分區(qū)的訪問,因此只要重新采用“讀寫”模式將NTFS卷掛載,就可以實現(xiàn)NTFS格式分區(qū)的寫入。macOS控制臺環(huán)境中提供了mount和umount命令實現(xiàn)“掛載”和“卸載”各種分區(qū)格式。

以上大多數(shù)的參數(shù)在本文中不需要特別設(shè)置,主要需要關(guān)注以下參數(shù):
-o options:option 是掛載參數(shù),這里需要使用rw,nobrowser參數(shù)實現(xiàn)讀寫掛載,并且使用nobrowser參數(shù)才能生效。
-t external_type:external_type是需要掛載的文件系統(tǒng)類型,這里使用ntfs作為參數(shù)掛載NTFS文件系統(tǒng)卷。
special:用于指定設(shè)備文件,例如 /dev/disk2s1。
mount_point:指 定 文件系統(tǒng)掛載的位置,如~/Desktop/hello。
對照以上的命令調(diào)用 格 式,sudo mount -o rw,nobrowse -t ntfs /dev/disk2s1 ~/Desktop/udisk可以實現(xiàn)將disk2s1文件分區(qū)按照ntfs文件分區(qū)格式以讀寫模式掛載到桌面的udisk文件夾中。
注意:由于掛載磁盤操作需要管理員權(quán)限,因此一般使用sudo提升權(quán)限。
另外,由于macOS環(huán)境中umount卸載磁盤分區(qū)功能沒有diskutil umount功能的穩(wěn)定性好,本文腳本中也采用了diskutil umount代替了mount命令。


以上代碼中,Devices變量用語保存系統(tǒng)中只讀的文件系統(tǒng)的掛載設(shè)備名,也就是當一個NTFS卷被macOS系統(tǒng)默認掛載的設(shè)備。腳本接受mount和umount兩種參數(shù),分別用于掛載和卸載NTFS分區(qū)。腳本掛載NTFS卷前會在桌面新建一個與掛載設(shè)備名同名的一個空文件夾,用于作為文件系統(tǒng)的掛載點。
以上腳本使用前必須進行合適的安裝,具體來說就是需要將腳本保存到操作系統(tǒng)PATH搜索路徑內(nèi),便于腳本的調(diào)用。筆者將該腳本保存為/opt/local/bin/mount-ntfs文件。文件保存后,還需要使用chmod命令給腳本添加執(zhí)行權(quán)限。
通過以上的方法正確安裝好腳本后,腳本一般的使用過程如下:
1.插入帶有NTFS卷的U盤或者移動硬盤。
2.當桌面顯示出磁盤分區(qū)后,在控制臺終端輸入mount-ntfs mount命令執(zhí)行腳本,腳本正確執(zhí)行后,會重新以讀寫模式掛載NTFS分區(qū)。
3.對分區(qū)進行讀寫操作……(用戶操作)。
4.在 彈出U盤或移動硬盤前,在控制臺終端輸入mount-ntfs umount卸載分區(qū)。
在以上的操作中,如果不希望每次都進入到控制臺輸入命令,可以將以上的命令制作成符號鏈接或者“替身”放在桌面上,這樣就可以通過簡單的雙擊實現(xiàn)掛載和卸載分區(qū)。
使用bash腳本打開macOS操作系統(tǒng)原生對NTFS卷的訪問功能的關(guān)鍵是,采用rw和nobrowse參數(shù)重新“掛載”NTFS卷。腳本將mount、umount、awk 等 Unix命令有機結(jié)合起來,將原本復(fù)雜的多個操作簡化為一個腳本調(diào)用命令,使用戶不需要花費額外的費用,就能穩(wěn)定安全地實現(xiàn)NTFS文件系統(tǒng)的寫入功能。
本文主要考慮了移動存儲介質(zhì)NTFS文件分區(qū)掛載的情況,如果macOS系統(tǒng)的本地磁盤中也有采用NTFS分區(qū)格式的,可以直接在/etc/fstab文件中創(chuàng)建相關(guān)配置,這樣就可以實現(xiàn)開機自動采用讀寫模式訪問NTFS分區(qū)。