11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2021-09-10
  • 本文字数:1286 字

    阅读完需:约 4 分钟

更完善的 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

 

关联阅读:

 

为什么早期的 Windows 需要整理碎片

 

如何实现支持百亿级文件的分布式文件存储

2021-09-10 18:084960

评论

发布
暂无评论
发现更多内容

高能预警!Apache Flink Meetup · 上海站返场啦

Apache Flink

flink

脑洞:基于Enterprise Continuum证明DDD用于构建汽车的可行性

Winfield

企业架构 领域驱动设计 DDD 架构演进

Demo 示例:如何原生的在 K8s 上运行 Flink?

Apache Flink

flink

压测工具试验

独孤魂

信创舆情一线--两部门发文加强对数字货币等新型权益的保护

统小信uos

架构师训练营第八周学习总结

张明森

LeetCode题解:1. 两数之和,JavaScript,双循环暴力解法,详细注释

Lee Chen

大前端 LeetCode

腾讯面试题: 百度搜索为什么那么快?

小松漫步

面试

2. 妈呀,Jackson原来是这样写JSON的

YourBatman

Java json Jackson Fastjson

POI内存溢出故障排查

Season

JVM POI jvm调优

读《我们为什么要去火星》随笔

Jackchang234987

产品 人生 读书 随笔杂谈

关于中台,可能都是正确的废话

FinClip

中台 业务中台

LeetCode001-两数之和-easy

书旅

算法 LeetCode 数据结构与算法

Vue 学习笔记-3

多选参数

vue.js Vue vuejs

B站新一代golang规则引擎的设计与实现

calo

B站 高并发 AST 规则引擎 Go 语言

我的 20 条工作原则

霍太稳@极客邦科技

成长 知识管理 职场成长

Redis系列(六):你说要看Redis线程模型?安排

z小赵

redis 高并发

四十个鹏城春夏,一场数字繁花

脑极体

性能优化

独孤魂

最高法主张加强数字货币产权保护有法可依

CECBC

数字货币 法偿货币 中国人民银行 虚拟财产

架构师训练营第八周笔记

Melo

如何识别刷屏文章中的伪科学

Lee Chen

大前端 随笔杂谈

敏捷软件开发宣言及十二原则

BigYoung

敏捷开发

22种超全用户触点采集,易观方舟SDK又更新了

易观大数据

Vue 学习笔记-2

多选参数

vue.js Vue vuejs

Docker网络学习第四篇-Namespace通信实战

Lazy

Docker Linux 网络

【区块链+通证经济】从量变到质变区块链发展的下一阶段是什么?

CECBC

数字货币 防篡改 通证

除了技术,加密货币开发者更应关注可使用性

CECBC

加密货币 用户为本 可使用性 容错机制

JVM系列之:对象的锁状态和同步

程序那些事

JVM GC 同步

第7周作业

文古

OAM 深入解读:如何基于 OAM Runtime 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

更完善的 NTFS 支持?Linux 用户等了太久_产品_辛晓亮_InfoQ精选文章