NTFS
來自維基百科:
- NTFS (New Technology File System) 是一個由微軟開發的專有日誌文件系統。從 Windows NT 3.1 開始是 Windows NT 系列的默認文件系統。
ntfs3 內核驅動提供了讀寫支持。
內核驅動並沒有配套的用戶空間工具,因此仍需使用 Windows 機器或 NTFS-3G 等外部工具來格式化分區或進行維護。
提示與技巧
提高性能
你可以啟用為 mount(8) 啟用 prealloc 選項來為並行寫入操作減少碎片(對機械硬碟更有用)。
防止創建 Windows 不支持的命名
NTFS 本身對字符和名稱沒有限制,但 Windows 對此有限制。
從內核版本 6.2 開始,ntfs3 支持 windows_names mount(8) 選項。使用該選項可嚴格保證兼容性。
已知問題
掛載時需要明確的文件系統類型
ntfs3 掛載時需要明確的文件系統類型,否則可能會將文件系統掛載為只讀,詳見#文件系統掛載為只讀。
要掛載文件系統,請將其類型指定為 ntfs3。例如,使用 mount(8) 的 -t/--types 選項:
# mount -t ntfs3 /dev/sdxY /mnt
排障
文件系統掛載為只讀
linux包提供的內核啟用了CONFIG_NTFS_FS兼容性選項 [1]。它會模仿舊版驅動的行為,把掛載選項中文件系統類型為ntfs的文件系統掛載為只讀。
要掛載文件系統為可讀寫,請使用ntfs3類型。詳見#掛載時需要明確的文件系統類型。
unknown filesystem type 'ntfs'
掛載 NTFS 時,可能會遇到如下錯誤:
mount: /mnt: unknown filesystem type 'ntfs'
請檢查是否已安裝 ntfs-3g:
$ pacman -Qi ntfs-3g
如果尚未安裝,可安裝之。也可以使用 -t ntfs3 參數來指定使用內核的 ntfs3 驅動。
若將 ntfs3 作為 ntfs 分區的默認驅動程序,那麼 udev 規則可以解決問題:
/etc/udev/rules.d/ntfs3_by_default.rules
SUBSYSTEM=="block", ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="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]
參見
- NTFS3 內核文檔
- NTFS3 驅動 FAQ – Paragon Software Group
- NTFS3 性能比較