跳至內容

NTFS

出自 Arch Linux 中文维基

來自維基百科

NTFS (New Technology File System) 是一個由微軟開發的專有日誌文件系統。從 Windows NT 3.1 開始是 Windows NT 系列的默認文件系統。

Linux有兩個內核驅動提供了對NTFS讀寫支持。

  • ntfs3—最初被 Paragon 提交到Linux內核中。ntfs3 內核驅動並沒有配套的用戶空間工具。安裝 來自 NTFS-3Gntfsprogs 或使用 Windows 設備以格式化分區和執行維護。
  • ntfs— 從 Linux 7.1 其可用,基於在 Linux 6.9 被移除的老舊只讀驅動,用戶空間工具在 ntfsprogs-plusAUR 中可用。

目前來看,沒有哪個驅動系統明顯更好,兩者各有優缺點,操作上也存在一些細微差別。值得注意的是:

  • ntfs 的整體性能應該略好一些。
  • ntfs 不支持 Windows 原生符號連結(計劃 7.2 支持 [1]
  • TRIM 實現上的差異

提示與技巧

防止創建 Windows 不支持的命名

NTFS 本身對字符和名稱沒有限制,但 Windows 對此有限制

內核驅動支持 windows_names mount(8) 選項。使用該選項可嚴格保證兼容性。

在 GUI 文件管理器中使用 ntfs 驅動

大多 GUI 文件管理器使用 udisks 掛載,它默認偏向使用 ntfs3 驅動。參見Udisks#默認掛載選項以使用 ntfs 驅動替代。

已知問題

掛載時需要明確的文件系統類型

在7.1版本之前的內核上,NTFS 分區默認可能以只讀方式掛載或完全無法掛載。

這種情況下,需要明確指定ntfs3為文件系統類型。例如,使用 mount(8)-t/--types 選項:

# mount -t ntfs3 /dev/sdxY /mnt

或者使用 fstab

/etc/fstab
/dev/sdxY /mnt ntfs3 defaults 0 0

排障

文件系統掛載為只讀

如果使用版本舊於 7.1 的內核,使用ntfs3掛載文件系統以讀寫。詳見#掛載時需要明確的文件系統類型

unknown filesystem type 'ntfs'

掛載 NTFS 時,可能會遇到如下錯誤:

mount: /mnt: unknown filesystem type 'ntfs'

請檢查是否已安裝 ntfs-3g:

$ pacman -Qi ntfs-3g

如果尚未安裝,可安裝之。也可以使用 -t ntfs3 參數來指定使用內核的 ntfs3 驅動。

無法用 ntfs3 掛載被標記為髒的分區

嘗試掛載一個正常的 NTFS 分區時(成功地使用 NTFS-3G 掛載,執行 ntfsfix --no-action 不匯報任何錯誤時),你可能會獲得下面的錯誤:

mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.

當分區被標記為「髒的」時,ntfs3 將不會掛載它。dmesg 會幫助你判斷這個情況,會說:

sdb1: volume is dirty and "force" flag is not set!

你可以嘗試用 --clear-dirty 參數來使用 {ntfsfix(8) 來清理它。 [2]

參見