如何使用原生 NTFS 驱动替代旧版 FUSE NTFS 驱动
创始人
2024-03-02 11:41:27
0

NTFS 是 Windows NT 系列操作系统支持的磁盘文件系统格式,它是一个特别为网络和磁盘配额、文件加密等管理安全特性设计的文件系统。而 Linux 内核中新进入主线支持的 NTFS3 驱动是一个功能齐全的 NTFS 驱动程序,该驱动程序适用于最高的 NTFS 3.1 版本。

简介

最初,Linux 内核没有 NTFS 的原生支持,后来对 NTFS 的支持也仅提供了只读功能。来自 Tuxera 的 NTFS-3G 是之前主流的解决方案,但在实际使用中也存在一些问题。NTFS-3G 是借助 Linux 的用户空间文件系统(FUSE)模块在用户层实现的一个对 NTFS 支持的文件系统,其对 NTFS 的访问逻辑代码都是在用户层代码实现的。

在 NTFS3 出现之前,Linux 上使用 NTFS 主要问题还是缺乏稳定且功能齐全的读/写支持。

2020 年,Paragon 软件公司做出了一个惊人的决定:尝试将之前只提供给商业客户的 NTFS3 驱动程序贡献到 Linux 主线。最终,在经过多轮审核和修改之后,Linux 内核 5.15 合并了 Paragon 提供的 NTFS3 内核驱动,它拥有更高的性能和更多的特性。

  • 该驱动程序实现了对 NTFS 文件系统中的正常、稀疏和压缩文件的读/写支持。
  • 支持本地日志回放。
  • 支持已挂载的 NTFS 卷的 NFS 导出。
  • 支持文件和文件夹的权限管理。

使用 ntfs3 驱动替换 ntfs-3g 挂载 windows NTFS 分区

如何使用 NTFS3 驱动挂载 NTFS 卷

使用 NTFS3 驱动挂载时使用的文件系统类型是 ntfs3

手动挂载

以前使用 NTFS-3g 驱动的挂载方式是:

# mount -t ntfs-3g /dev/sdxY /mnt

现在只需要将 ntfs-3g 替换为 ntfs3 即可:

# mount -t ntfs3 /dev/sdxY /mnt

-t 指出文件系统类型,/dev/sdxY 是你的 NTFS 卷(分区)的路径,可以使用 lsblk 命令查看。/mnt 是挂载的目标文件夹。

如果需要指定挂载参数,可使用 -o 指定参数,如:

# mount -t ntfs3 -o iocharset=utf8,umask=22,prealloc /dev/sdxY /mnt

这里的 iocharset=utf8,umask=22,prealloc 挂载参数,详见后文解释。

开机自动挂载

如需在开机时自动挂载,可编辑 /etc/fstab 文件,添加如下行:

UUID=**** /data ntfs3 iocharset=utf8,umask=0,prealloc 0 0

其中 UUID=**** 是指定卷(分区)的 UUID。使用 UUID 的好处在于它们与磁盘挂载顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 来表示指定卷(分区)会更有效。可以使用 blkid 命令查看 UUID

/data 是挂载位置。本示例的位置是 /data,你需要提前创建这个文件夹。

后面的选项都是挂载参数,参见后文介绍。

最后两个 0 0 ,表示是否备份和是否检查。0 0 表示不备份、不检查。

挂载参数说明

参数解释
iocharset=name此选项告知驱动程序如何解释路径字符串,并将其转换为 Unicode 或返回。如果未设置此选项,将使用默认代码页。示例:iocharset=utf8
uid=挂载用户 ID
gid=挂载组 ID
umask=控制装载 NTFS 卷后创建的文件/目录的默认权限。
dmask=fmask 只适用于文件,dmask 只适用于目录,而不是指定同时适用于文件和目录的 umask
fmask=见上
noacsrules“无访问规则”装载选项将文件/文件夹的访问权限设置为 777,所有者/组设置为 root。此装载选项吸收所有其他权限。文件/文件夹的权限更改将报告为成功,但仍将保持 777。所有者/组更改将报告为成功,但他们将保留为 root 用户。
nohiddenLinux 下不会显示具有 Windows 特定隐藏(FILE_ATTRIBUTE_HIDDEN)属性的文件。
sys_immutable具有 Windows 特定系统(FILE_ATTRIBUTE_SYSTEM)属性的文件将标记为系统不可变文件。
discard支持 TRIM 命令以提高删除操作的性能,建议将其用于固态驱动器(SSD)。
force即使卷被标记为脏,也强制驱动程序装载分区。不建议使用。
sparse创建稀疏的新文件。
showmeta使用此参数可显示已装入 NTFS 分区上的所有元文件(系统文件)。默认情况下,所有元文件都是隐藏的。
prealloc当写入时文件大小增加时,为文件过度预分配空间。减少对不同文件执行并行写入操作时的碎片。
acl支持 POSIX ACL(访问控制列表)。如果内核支持,则有效。不要与 NTFS ACL 混淆。指定为 acl 的选项支持 POSIX acl。

NTFS3 的优点

NTFS3 是内核态的驱动,ntfs3 比 ntfs-3g 无论是速度还是负载都要好上不少。

已经有诸多网友做过测试:

除了性能更好以外,NTFS3 还支持挂载用户和文件权限管理等功能。具体使用方法可以自行学习 giduid 以及 umask 的用法。

另外 NTFS3 还支持 NTFS 的 prealloc 特性,可以大幅减少文件碎片的产生。

关于 NTFS3 驱动无人维护的问题

Paragon 于 2020 年在 GNU 通用许可证下发布了 NTFS3 驱动程序,在开源后的一年里,NTFS3 的驱动经过了多轮审查和修改,用来提高代码质量。直到 2021 年合并进入内核主线。

但是自从该驱动 2021 年在 Linux 5.15 中最终被主线化以来,至今为止,在接近一年的时间里,还没有任何重大的错误修复被送入驱动。

有人推测是该驱动的维护者 Konstantin Komarov 身处俄罗斯,受到俄乌战争影响的原因。

随后包括 Linus Torvalds 在内的诸多程序员都对此事表达了关切,并且愿意参与到贡献中来。

现在,我们看到 Paragon 软件公司的 Konstantin Komarov 在因休息和其他事务而离开后,又重新活跃在内核邮件列表中。Komarov 在 2022 年 6 月 3 日为 Linux 5.19 的合并窗口提交了一批 NTFS3 的修正。

我相信 ntfs3 未来会越来越好。并且目前,ntfs3 已经是 Linux 中最好用 NTFS 驱动了,我觉得你也不妨尝试一下。


作者简介:一个喜欢瞎鼓捣的医学生


via: https://www.insidentally.com/articles/000029/

作者:insidentally 编辑:wxy

本文由贡献者投稿至 Linux 中国公开投稿计划,采用 CC-BY-SA 协议 发布,Linux中国 荣誉推出

相关内容

把ubuntu更改为ntf...
将Ubuntu更改为NTFS分区,是一种常见的操作。在Linux系...
2024-11-26 10:30:49
在Linux上将U盘格式化...
背景 由一个 vfat 格式的U盘,之前是在 Lin...
2024-06-01 17:24:15
硬核观察 #857 Val...
Valve 付费给 Steam Deck 软件的开源开发者Stea...
2024-03-02 13:43:49
如何使用原生 NTFS 驱...
NTFS 是 Windows NT 系列操作系统支持的磁盘文件系统...
2024-03-02 11:41:27
硬核观察 #619 新 N...
新 NTFS Linux 驱动没有承诺的维护2020 年,Para...
2024-03-02 10:57:53
硬核观察 #385 Goo...
Google 位居全球互联网访问量第一,有七家中国企业闯入前十最新...
2024-03-02 08:26:37

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...