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

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在即将到来的 Linux Kernel 5.15 更新中,将添加 Paragon 的 NTFS3 内核驱动,以对微软 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/wiki\/NTFS","title":null,"type":null},"content":[{"type":"text","text":"NTFS"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 文件系统提供更好的支持。此前 Paragon 使用 GPL 许可证开源了他们的 "},{"type":"link","attrs":{"href":"https:\/\/github.com\/Paragon-Software-Group\/linux-ntfs3","title":null,"type":null},"content":[{"type":"text","text":"NTFSv3"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 驱动程序,Linux 5.15 目前并入了这个提交。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 内核包含 NTFS 支持已经有很长一段时间了,然而到目前为止,在 Linux 上使用 NTFS 文件系统一直让人很头疼。旧的 NTFS 驱动程序已经很久没有维护了,另外的办法是使用来自 Tuxera 的 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh\/NTFS-3G","title":null,"type":null},"content":[{"type":"text","text":"NTFS-3G"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",这也是目前主流的解决方案,但在实际使用中也有不少小问题。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"NTFS-3G 不能很好的胜任工作"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"最初 Linux 内核没有对 NTFS 做原生支持,NTFS-3G 是借助 Linux 的用户空间文件系统 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh-hans\/FUSE","title":null,"type":null},"content":[{"type":"text","text":"FUSE"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 模块在用户层实现的一个模仿对 NTFS 支持的文件系统,对 NTFS 的访问逻辑代码都是在用户层代码实现的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"NTFS-3G 设计之初就包含读写,为什么也出现只读的情况。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"首先 NTFS 是微软开发的的私有文件系统并不是开源的,也从来没有公开过任何技术细节,并且一直在不断地进行更新。NTFS-3G 没有办法获得微软官方的支持,NTFS-3G 的解决方案是通过种种逆向手段反推 NTFS 文件系统结构,以及如何访问 NTFS 的逻辑。这也就说明 NTFS-3G 对 NTFS 的兼容是没有微软官方保证的。NTFS 本身版本更新、你的系统更新或者 NTFS-3G 本身出问题等等都可能对 Linux 上 NTFS 的读写造成影响,此外,出问题了也需要 NTFS-3G 的工程师继续逆向分析来解决。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 上使用 NTFS 主要问题还是缺乏稳定且功能齐全的读\/写支持。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"NTFS3 内核开源助 Linux NTFS 迎来新生"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Paragon 去年在 GNU 通用许可证下发布了 NTFS3 驱动程序,在此之前,NTFS3 是一个用于商业销售的驱动程序。开源的原因可能是由于微软的 "},{"type":"link","attrs":{"href":"https:\/\/zh.wikipedia.org\/zh-hans\/ExFAT","title":null,"type":null},"content":[{"type":"text","text":"exFAT"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 吸引了大部分的注意力,正在慢慢变得主流,NTFS 不再是行业的宠儿。而 Linux 作为云部署中使用最广泛的操作系统,随着容器的兴起,NTFS 也不会成为文件系统的统治者,将 NTFS 的驱动程序作为专有解决方案的盈利能力越来越不可行。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在开源后的一年里,NTFS3 的驱动经过了多轮审查,用来提高代码质量,以保证更好地跟上游编码标准保持一致。由于当前内核驱动已经很久没有维护,NTFS3 已经可以提供比当前内核驱动更多的功能,尤其是写入支持。跟同样基于 FUSE 的开源 NTFS-3G相比也具有更强的功能和性能。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Paragon 将 NTFS3 驱动程序提交到 Linux 内核的动作也获得了一致好评,这一举措甚至被称作“英雄行为”,给那些不得不在 Linux 上处理 NTFS 文件系统的人带来了救命良药。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Linux 之父 Linus Torvalds 表示他们可能会将旧的 NTFS 内核代码转移到 staging 上,慢慢废弃直到完全删除它,但目前来看 NTFS3 只是一个新的选择。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"虽说 NTFS 的使用正在减少,但大多数外部驱动器仍是用 NTFS 文件系统格式化的,新的驱动程序的加入将更好地帮助 Linux 在默认状态下使用 NTFS 格式的驱动器。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"目前就是等待 Linux 5.15 的正式更新以及各大发行版尽快跟进。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"参考链接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f7464060f7ab9a2424428008f0ee9f1e267e410f","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/torvalds\/linux.git\/commit\/?id=f7464060f7ab9a2424428008f0ee9f1e267e410f"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}},{"type":"strong"}],"text":"关联阅读:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/w6ht3tn7upblb4xctdhm","title":null,"type":null},"content":[{"type":"text","text":"为什么早期的 Windows 需要整理碎片"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/xie.infoq.cn\/article\/6a8e27982179221e8ffbac489","title":null,"type":null},"content":[{"type":"text","text":"如何实现支持百亿级文件的分布式文件存储"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章