NTFS
来自维基百科:
- NTFS (New Technology File System) 是一个由微软开发的专有日志文件系统。从 Windows NT 3.1 开始是 Windows NT 系列的默认文件系统。
Linux有两个内核驱动提供了对NTFS读写支持。
- ntfs3—最初被 Paragon 提交到Linux内核中。ntfs3 内核驱动并没有配套的用户空间工具。安装 来自 NTFS-3G 的 ntfsprogs包 或使用 Windows 设备以格式化分区和执行维护。
- ntfs— 从 Linux 7.1 其可用,基于在 Linux 6.9 被移除的老旧只读驱动,用户空间工具在 ntfsprogs-plusAUR 中可用。
目前来看,没有哪个驱动系统明显更好,两者各有优缺点,操作上也存在一些细微差别。值得注意的是:
提示与技巧
防止创建 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]
参见
- NTFS3 内核文档
- NTFS3 驱动 FAQ – Paragon Software Group
- NTFS3 性能比较