NTFS
来自 维基百科
- 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 用户空间实用程序,而无需 NTFS-3G 驱动程序。
技巧与诀窍
提升性能
你可以启用 prealloc
mount(8) 选项,以减少并行写入操作时的碎片(对于 HDD 最有用)。
防止创建 Windows 不允许的名称
NTFS 本身对使用的字符和名称没有限制,但 Windows 有。
自内核版本 6.2 起,ntfs3 支持 windows_names
mount(8) 选项。使用它可以严格保持兼容性。
提示: udisks 默认启用此选项。
已知问题
挂载需要显式指定文件系统类型
ntfs3
需要指定文件系统类型才能挂载。
为了能够挂载文件系统,请将其类型指定为 ntfs3
。例如,使用 mount(8) 的 -t
/--types
选项
# mount -t ntfs3 /dev/sdxY /mnt
故障排除
未知的文件系统类型 '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"
尽管如此,不建议使用此方法,并且可能会混淆某些第三方工具。
无法挂载标记为脏分区的 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 将不会挂载卷标记为脏的分区,除非使用 force 选项。 dmesg
明确地帮助识别这种情况,提示:
sdb1: volume is dirty and "force" flag is not set!
你可以尝试将 --clear-dirty
参数传递给 ntfsfix(8) 来清除它。 [1]
参见
- NTFS3 内核文档
- NTFS3 驱动程序常见问题解答 – Paragon Software Group
- NTFS3 性能比较