NTFS - Arch Linux 中文维基

跳转到内容

# NTFS

来自 Arch Linux 中文维基

相关文章

- 文件系统
- NTFS-3G
- Ufsd

翻译状态：

- 本文（或部分内容）译自 NTFS，最近一次同步于 2025-11-15，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

来自维基百科：

  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) 选项。使用该选项可严格保证兼容性。

提示：udisks 默认启用该选项。

## 已知问题

### 挂载时需要明确的文件系统类型

`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 性能比较

分类：​

- 文件系统

NTFS
添加话题