NTFS

出自 Arch Linux 中文维基

來自維基百科

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

ntfs3 內核驅動提供了讀寫支持。

注意:
  • 所有 5.15 及更新版本的官方支持的內核都默認使用了 CONFIG_NTFS3_FS=m 參數,因此支持該驅動。在 5.15 版本前,NTFS 讀寫支持由 NTFS-3G FUSE 文件系統提供。或者也可以通過 ntfs3-dkmsAUR 使用向後移植的 NTFS3。
  • 內核模塊的作者 Paragon Software 尚未發佈 NTFS3 的用户空間實用程序。你可以通過 ntfsprogs-ntfs3AUR 使用不帶 NTFS-3G 驅動的用户空間實用程序。

提示與技巧[編輯 | 編輯原始碼]

提高性能[編輯 | 編輯原始碼]

你可以啟用為 mount(8) 啟用 prealloc 選項來為並行寫入操作減少碎片(對機械硬盤更有用)。

防止創建 Windows 不支持的命名[編輯 | 編輯原始碼]

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

從內核版本 6.2 開始,ntfs3 支持 windows_names mount(8) 選項。使用該選項可嚴格保證兼容性。

注意: udisks 默認啟用該選項。

已知問題[編輯 | 編輯原始碼]

掛載時需要明確的文件系統類型[編輯 | 編輯原始碼]

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

要掛載文件系統,請將其類型指定為 ntfs3。例如,使用 mount(8)-t/--types 選項:

# mount -t ntfs3 /dev/sdxY /mnt

排障[編輯 | 編輯原始碼]

unknown filesystem type 'ntfs'[編輯 | 編輯原始碼]

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

mount: /mnt: unknown filesystem type 'ntfs'

請參閱#掛載時需要明確的文件系統類型

如果您想將 ntfs3 作為 ntfs 分區的默認驅動程序,那麼 udev 規則可以解決問題:

/etc/udev/rules.d/ntfs3_by_default.rules
SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs3"

不過這僅為一種方法而非建議,並且可能弄暈一些第三方工具。

udisks 支持[編輯 | 編輯原始碼]

本文內容或本節內容已經過期。

原因: 下面描述的問題已被修復。從內核版本 6.2 開始,ntfs3 支持 windows_names 選項。 (在Talk:NTFS討論)

udisks 支持 NTFS3,但當前有一些問題。請參閱 udisks ntfs3 PRissue 932

當 NTFS3 驅動因為 NTFS-3G 未被安裝時被使用,但是掛載選項未改變時,可能會有以下的錯誤:

ntfs3: Unknown parameter 'windows_names'

Filesystem type ntfs3,ntfs not configured in kernel

第二種錯誤會在 Dolphin 遇到。Nautilus 也會在遇到髒的 NTFS 分區時報出同一報錯信息(可參考#無法用 ntfs3 掛載被標記為髒的分區)。

作為一種解決辦法,添加以下選項到 /etc/udisks2/mount_options.conf[defaults] 部分中:

ntfs_defaults=uid=$UID,gid=$GID,prealloc

見: 無法使用自 Linux 5.15 被引入的新 ntfs3 模塊掛載 NTFS。

無法用 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 來清理它。 [1]

參見[編輯 | 編輯原始碼]