About Blog Contact

为什么Linux内核只能支持NTFS只读?

知乎问题:为什么linux内核只能支持ntfs只读?

一个原因是使用FUSEntfs-3g已经解决了读的问题,而且对性能还可以的机器开销也可以接受(我在我的笔记本上用ntfs盘存大视频和软件备份,没有感觉到过有什么区别),再加上kernel开发者的意愿不是很强烈(毕竟服务器有谁用linux和ntfs的组合……),导致没有整到kernel里面。

还有个原因我觉得是Tuxero公司有商业上的考虑:ntfs-3g尽管是自由软件,但开发他的Tuxero公司也推出了收费的针对嵌入式设备的高性能NTFS驱动,

A high-performance alternative, called Tuxera NTFS is available for embedded devices

这个是用kernel module的哦:

Our full implementation package comes with a built-to-spec, ready-to-run kernel module, all the file system and benchmarking tools you need, intensive device testing, our patented fail-safe technology, and full-service support.

推出了一个能用的FUSE版,使得社区没有太大的动力去整kernel版,又不把他弄得太好,这样还能卖商业版,这算盘打得还挺好……

12/17 更新:

补充一下,其实就算是使用ntfs-3g,也有可能把NTFS的分区mount成只读的。这是因为Windows的fast startup功能:Delivering a great startup and shutdown experience。在关机的时候,在文件系统中可能会存储一些记录当前状态的缓存,使得下一次开机更快。不过,如果这时候去修改文件系统,可能会使其变得不完整,影响下次开机后的使用。因此ntfs-3g会进行检测,如果有这些缓存文件的话只能mount成只读。

Fast startup功能可以在Windows中关闭,不常用Windows的朋友可以去设置一下。

参考资料: