更完善的 NTFS 支持?Linux 用户等了太久

在即将到来的 Linux Kernel 5.15 更新中,将添加 Paragon 的 NTFS3 内核驱动,以对微软 NTFS 文件系统提供更好的支持。此前 Paragon 使用 GPL 许可证开源了他们的 NTFSv3 驱动程序,Linux 5.15 目前并入了这个提交。

Linux 内核包含 NTFS 支持已经有很长一段时间了,然而到目前为止,在 Linux 上使用 NTFS 文件系统一直让人很头疼。旧的 NTFS 驱动程序已经很久没有维护了,另外的办法是使用来自 Tuxera 的 NTFS-3G,这也是目前主流的解决方案,但在实际使用中也有不少小问题。

NTFS-3G 不能很好的胜任工作

最初 Linux 内核没有对 NTFS 做原生支持,NTFS-3G 是借助 Linux 的用户空间文件系统 FUSE 模块在用户层实现的一个模仿对 NTFS 支持的文件系统,对 NTFS 的访问逻辑代码都是在用户层代码实现的。

NTFS-3G 设计之初就包含读写,为什么也出现只读的情况。

首先 NTFS 是微软开发的的私有文件系统并不是开源的,也从来没有公开过任何技术细节,并且一直在不断地进行更新。NTFS-3G 没有办法获得微软官方的支持,NTFS-3G 的解决方案是通过种种逆向手段反推 NTFS 文件系统结构,以及如何访问 NTFS 的逻辑。这也就说明 NTFS-3G 对 NTFS 的兼容是没有微软官方保证的。NTFS 本身版本更新、你的系统更新或者 NTFS-3G 本身出问题等等都可能对 Linux 上 NTFS 的读写造成影响,此外,出问题了也需要 NTFS-3G 的工程师继续逆向分析来解决。

Linux 上使用 NTFS 主要问题还是缺乏稳定且功能齐全的读/写支持。

NTFS3 内核开源助 Linux NTFS 迎来新生

Paragon 去年在 GNU 通用许可证下发布了 NTFS3 驱动程序,在此之前,NTFS3 是一个用于商业销售的驱动程序。开源的原因可能是由于微软的 exFAT 吸引了大部分的注意力,正在慢慢变得主流,NTFS 不再是行业的宠儿。而 Linux 作为云部署中使用最广泛的操作系统,随着容器的兴起,NTFS 也不会成为文件系统的统治者,将 NTFS 的驱动程序作为专有解决方案的盈利能力越来越不可行。

在开源后的一年里,NTFS3 的驱动经过了多轮审查,用来提高代码质量,以保证更好地跟上游编码标准保持一致。由于当前内核驱动已经很久没有维护,NTFS3 已经可以提供比当前内核驱动更多的功能,尤其是写入支持。跟同样基于 FUSE 的开源 NTFS-3G 相比也具有更强的功能和性能。

Paragon 将 NTFS3 驱动程序提交到 Linux 内核的动作也获得了一致好评,这一举措甚至被称作“英雄行为”,给那些不得不在 Linux 上处理 NTFS 文件系统的人带来了救命良药。

Linux 之父 Linus Torvalds 表示他们可能会将旧的 NTFS 内核代码转移到 staging 上,慢慢废弃直到完全删除它,但目前来看 NTFS3 只是一个新的选择。

虽说 NTFS 的使用正在减少,但大多数外部驱动器仍是用 NTFS 文件系统格式化的,新的驱动程序的加入将更好地帮助 Linux 在默认状态下使用 NTFS 格式的驱动器。

目前就是等待 Linux 5.15 的正式更新以及各大发行版尽快跟进。

参考链接:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7464060f7ab9a2424428008f0ee9f1e267e410f

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/OUO2yrFqURmJbOj2jVG2
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券