- NTFSPLUS 为 Linux 上的 NTFS 提供现代、快速且完整的写入支持,在多处理场景中性能优于 NTFS3 和 NTFS-3G。
- EXT4 仍然是最均衡的文件系统,并且在大多数 Linux 发行版中默认推荐使用。
- 对于 SSD 和高级功能(快照、压缩),BtrFS 和 F2FS 比 EXT4 等传统系统具有优势。
- 在服务器和 RAID 配置中,OpenZFS 以其稳健性和冗余选项脱颖而出,尤其是在 RAIDZ 设置中。

在使用 Linux 系统访问 Windows 格式化的磁盘时,NTFS 文件系统常常令人头疼:我们确实需要它,但多年来内核对 NTFS 的支持却差强人意。如今,全新的 NTFSPLUS 驱动程序的出现彻底改变了 Linux 的这种局面,因此,了解它带来了哪些新特性、它的由来以及它与以往版本的区别都至关重要。
同时,我们也需要将它与其他 Linux 文件系统放在一起比较。并非所有格式都具有相同的用途,而且根据使用场景的不同,它们的推荐程度也各不相同:为系统配置 SSD与配置 RAID NAS或要与 Windows 共享的外部硬盘截然不同。让我们仔细看看 NTFSPlus 是什么,它相比 NTFS3 和 NTFS-3G 解决了哪些问题,以及它如何融入 EXT4、XFS、F2FS、BtrFS 和 OpenZFS 等文件系统的生态系统中。
NTFSPLUS是什么?为什么它在Linux中如此重要?
Linux 生态系统中最近出现了一款名为 NTFSPLUS 的全新 NTFS 驱动程序。这款现代化的高性能驱动程序专为内核集成而设计,其主要目标是为 NTFS 分区提供完整的读写支持,与之前的解决方案相比,在稳定性和速度方面均有所提升。
该驱动程序的开发由在 Linux 文件系统方面拥有丰富经验的工程师 Namjae Jeong负责。他曾负责将 exFAT 驱动程序适配到内核集成,并维护内核空间 SMB 服务器模块 (KSMBD)。他之前在 Microsoft 文件系统方面的经验使他能够以非常扎实的基础来处理 NTFS 文件系统。
创建 NTFSPLUS 的动机源于一个相当特殊的情况:原有的只读 NTFS 内核驱动程序已被移除,而 Paragon Software 提供的支持读写功能的 NTFS3 驱动程序填补了这一空白。理论上,NTFS3 应该是最终的解决方案,但据 Jeong 本人和一些社区成员反映,它的维护、质量和稳定性并未达到预期。
与此同时,许多发行版继续使用基于 FUSE 的用户空间驱动程序 NTFS-3G。虽然它相当稳定,但其性能低于内核驱动程序,并且会增加一些延迟,这在密集写入或多线程操作期间尤为明显。
为了解决所有这些问题,NTFSPLUS 基于传统的只读 NTFS 内核驱动程序构建,该驱动程序以其简洁且文档完善的代码而闻名。在此清晰易维护的基础上,NTFSPLUS 添加了完整的写入支持和一系列现代技术改进,使其成为 NTFS3 的一个强有力的替代方案。
NTFSPLUS 的主要技术特性
NTFSPLUS 并非仅仅是为旧驱动程序添加写入支持的“补丁”;它是一项深度重构,将现代块管理技术集成到内核中。其中一个关键组件是使用iomap,这是一种内核基础架构,可以简化文件系统管理磁盘块分配的方式。
此外,NTFSPLUS 还致力于消除缓冲区头这一传统结构,该结构在 I/O 密集型场景下会限制性能。取而代之的是,NTFSPLUS 依赖于更新的内核机制,从而减少瓶颈并更好地利用现有硬件资源,尤其是在多核系统中。
另一项重大改进是完全过渡到使用文件页(folio)来管理与文件关联的内存页。这一改变符合 Linux 内核当前的开发方向,并有助于更好地管理内存,从而在处理大型文件或进行大量并发访问时提高稳定性和效率。
在功能方面,NTFSPLUS 提供ID 映射挂载,这在 Windows 和 Linux 之间共享 NTFS 卷并希望正确对齐用户和组 ID 时非常有用。它还实现了延迟块分配,这项技术允许您对写入操作进行分组并减少碎片,从而提高文件系统的整体性能。
该驱动程序附带特定的命令行实用程序,包括类似 fsck 的工具,用于检查和修复由 NTFSPLUS 管理的 NTFS 文件系统的完整性。这对于确保其在生产环境或处理敏感数据时的可靠性至关重要。
与 NTFS3 和 NTFS-3G 相比,性能和优势更佳
NTFSPLUS 的一大优势在于其在多线程工作负载下的性能。测试结果表明,在多线程写入的情况下,NTFSPLUS 的速度明显优于 NTFS3,能够更有效地利用系统资源。这对于服务器、工作负载密集型系统或涉及并发复制多个文件的场景尤为重要。
在单线程访问场景下,性能提升虽然不如NTFS3 那么显著,但仍然能感受到明显的改进。至于纯读取性能,两种驱动程序的测试数据往往非常接近,因此只有在系统同时进行大量写入操作时,真正的差异才会显现出来。
与 NTFS-3G 相比,NTFSPLUS 的优势更加明显:它完全在内核空间运行,从而降低了延迟并显著提升了 I/O 性能。NTFS-3G 在兼容性方面仍然是一个可行的选择,但其基于 FUSE 的特性使其在性能上逊于现代内核驱动程序。
另一个敏感问题是日志支持。NTFS3曾宣传支持变更日志,但实际上并未完全实现。这引起了部分社区成员的不信任,因为日志对于防止断电或突然关机期间数据丢失至关重要。而 NTFSPlus 则已将日志功能纳入其开发路线图,并明确将其列为开发目标之一。
此外,NTFSPLUS 的分发方式也是一大优势:其代码以一系列公开补丁的形式发布,总计超过 34,000 行,这便于其他内核开发者进行审查。这种透明性使得问题能够在进入生产环境之前被发现,并比维护不明的驱动程序建立起更牢固的信任基础。
Linux 内核中的项目状态和采用情况
截至目前,NTFSPLUS 尚未并入 Linux 内核主分支,但社区已对该项目表现出浓厚的兴趣。该项目由经验丰富的开发者主导,并从一开始就采用开源代码开发,这些因素都增加了其最终被官方整合的可能性。
对于经常需要处理 Windows 格式驱动器的用户来说,采用 NTFS 驱动程序将带来重大变革。此前,Linux 对 NTFS 的支持一直需要在性能、稳定性和可维护性之间做出妥协,没有一款驱动程序能够真正兼顾这三方面。NTFSPLUS 旨在通过提供更均衡的性能来弥补这一不足。
在 NTFSPlus被纳入主内核之前,一些发行版可能会将其作为可选模块或通过额外的软件仓库提供,尤其是一些面向高级用户或服务器环境的发行版。无论如何,社区的压力和 NTFSPlus 带来的显著性能优势都对其有利。
如果 NTFSPLUS 得到广泛应用,我们可能会看到Linux 系统中NTFS 文件系统的参考驱动程序逐渐从 NTFS3 转向其他格式。这也会降低某些使用场景对 NTFS-3G 的依赖,或许会将其保留用于非常特殊的场景或 FUSE 具有优势的特定兼容性问题。
简而言之,该项目正在逐步成为在 Linux 中实现真正具有竞争力、可靠且可长期维护的 NTFS 支持的重要一步,而这对于家庭用户和专业人士来说,多年来一直是一个悬而未决的问题。
Linux 中其他重要的文件系统
了解 NTFSPLUS 的用途后,务必记住,在日常 Linux 安装和使用中,通常使用系统自带的文件系统。并非所有文件系统都适用于所有情况:有些更适合固态硬盘 (SSD),有些在 RAID 服务器上表现出色,还有一些则更注重稳定性而非高级功能。
了解这些差异至关重要,因为虽然许多发行版在安装过程中会选择默认文件系统,但我们可以根据自身需求自定义文件系统。从一开始就做出明智的选择可以避免很多麻烦,尤其是在服务器或数据丢失不可接受的环境中。
此外,务必记住,并非所有文件系统都允许启动 Linux 发行版或启动管理器本身。某些格式更适合用于数据存储、备份或共享卷,但不适合用作系统根分区。
我们将回顾 Linux 目前提供的主要文件系统:EXT4(及其前身 EXT2 和 EXT3)、XFS、F2FS、BtrFS 和 OpenZFS,清楚地解释它们之间的区别、各自的优势以及每种文件系统的推荐用途。
EXT4:大多数发行版的实际标准
EXT4,即第四扩展文件系统,是Linux桌面和笔记本电脑上最广泛使用的文件系统。它常被称为“Linux的NTFS”,因为它与NTFS用途相似:它是默认格式,经过充分测试,稳定可靠,足以满足大多数用户的需求。
EXT4 是 EXT3 的升级版,在性能、可靠性和对 SSD 等现代硬盘的支持方面都进行了诸多改进。其最显著的特性包括集成日志功能(有助于保护数据免受断电影响)、延迟分配和扩展管理(可减少碎片并提升日常使用性能)。
它的最大优势之一是它已作为 Linux 内核的一部分存在多年,并且拥有非常完善的支持。无需安装任何额外的软件或进行任何特殊的配置:几乎所有发行版都可以开箱即用,无论是用于根分区还是其他数据分区。
此外,EXT4 还支持一些实用功能,例如用于 SSD 的 TRIM 指令,以及禁用日志功能(如果您想通过减少写入次数来延长闪存驱动器的使用寿命)。对于日常使用来说,这通常不是必需的,但在某些特殊情况下,例如每次写入都至关重要时,它会非常有用。
它的主要缺点是,尽管有所改进,但它仍然是一种较老的技术,继承自 EXT、EXT2 和 EXT3。这并不意味着它不好,而是说它没有原生集成一些更现代的系统(例如 BtrFS 或 ZFS)提供的高级功能,尤其是在快照和卷管理方面。
XFS:在高吞吐量下实现极致性能。
XFS 是一款历史悠久的文件系统,最初是为专注于 3D 渲染和高强度工作负载的工作站而设计的。尽管已有三十多年的历史,但它仍然是处理大量数据的高级用户和系统管理员的首选。
它专为需要持续执行大量读写操作的系统而优化,即使在最大负载下也能保持极高的性能。为了实现这一点,它采用了动态分配 inode、特定的数据组织算法以及存储分配组等先进技术,这些技术能够随着数据量的增加而提升性能。
与 EXT4 类似,XFS 直接包含在 Linux 内核中,无需特殊配置即可使用。然而,许多发行版并未在安装程序中将其作为默认选项,而且对于缺乏经验的用户来说,正确配置 XFS 可能较为复杂。
它的优势包括在大容量硬盘或硬盘阵列上实现高性能,以及针对固态硬盘 (SSD) 的优化,包括 TRIM 支持和减少碎片的功能。在管理大容量存储或多磁盘系统时,它尤其强大。
缺点是XFS 默认启用日志功能且无法禁用。此外,其复杂性也使其对新手用户不太友好。它通常推荐用于服务器、专业工作站或性能优先于易用性的系统。
F2FS:专为闪存而设计
三星设计F2FS(闪存友好文件系统)的目标很明确:充分发挥基于NAND闪存的存储设备(例如U盘、存储卡,尤其是固态硬盘)的潜力。它并没有简单地套用传统的文件系统,而是专门针对这类存储设备的特性创建了一种全新的文件系统。
其策略是将硬盘分割成多个小块,以分散写入操作,避免重复覆盖相同的数据块。这可以分散磨损,延长设备的使用寿命。此外,F2FS 还支持 SSD 特有的技术,例如 TRIM 和 FITRIM,这些技术有助于操作系统更好地管理空闲数据块。
许多发行版都支持 F2FS 文件系统,但并非所有发行版都默认包含 F2FS,或者在安装程序中将其作为选项提供。F2FS 通常在特定环境中更为常见,例如移动设备、嵌入式系统,或者高级用户为了充分发挥特定 SSD 的性能而进行的自定义安装。
它的优势显而易见:它专为闪存技术量身打造,技术先进,并且不断发展。在合适的场景下,它可以在硬盘耐用性和性能之间实现非常均衡的平衡。
然而,与 EXT4 或 BtrFS 等其他文件系统相比,它无论是在速度还是数据安全性方面,通常都没有明显的优势。对于机械硬盘来说,它也不是最佳选择,因为它的优势微乎其微。因此,它主要推荐用于需要高度优化的固态硬盘 (SSD) 和闪存盘。
BtrFS:先进的功能和现代化的方法
BtrFS,即 B 树文件系统,由 Oracle 创建,旨在成为 EXT 的自然继任者。尽管它尚未取代 EXT 成为默认标准,但在需要高级数据管理功能的环境中,它已获得了相当大的市场份额。
它最大的优势之一是能够提供高级碎片整理、透明压缩和数据快照功能。这些快照功能可以实现高效的数据复制、驱动器间迁移和增量备份,这对于关键服务器和工作站而言至关重要。
BtrFS 支持 RAID 配置,但它并不特别适合高度复杂的 RAID 设置。即便如此,许多用户仍然选择它作为 SSD 的文件系统,因为与其他文件系统不同,它不支持传统的日志记录方式,并且优先考虑其他数据保护策略,此外还支持专为固态硬盘设计的 TRIM 和碎片整理技术。
实际上,大多数现代发行版都支持 BtrFS,有些发行版,例如 OpenSUSE,甚至将其作为默认安装文件系统。这反映出人们对 BtrFS 成熟度的信心日益增强,尽管对于了解其工作原理的用户而言,它仍然被认为是一个更友好的选择。
它的优势包括现代化的、不断发展的设计以及强大的数据管理和备份工具套件。然而,它也存在一些缺点:在关键场景下稳定性欠佳,如果发生严重崩溃,则存在数据丢失的风险。此外,某些配置错误可能会缩短固态硬盘的使用寿命。
OpenZFS:RAID 和大容量存储之王
OpenZFS 是 ZFS(泽字节文件系统)的一个社区分支,ZFS 最初由 Sun Microsystems 开发。由于许可问题导致 ZFS 无法直接集成到 Linux 内核中,社区推广 OpenZFS 作为开源替代方案,自 2010 年以来,该项目不断发展壮大,并在许多发行版中得到直接支持,包括自 2016 年以来的 Ubuntu。
OpenZFS的主要优势在于能够处理复杂的 RAID 系统和超大存储容量。它几乎兼容所有常见的 RAID 配置,并新增了 RAIDZ 变体,从而提高了冗余性,并降低了断电或磁盘故障时数据丢失的风险。
OpenZFS并非为普通用户设计:它的配置复杂,会消耗大量的内存和CPU资源,并且需要对存储池、数据集和快照的组织方式有透彻的了解。但如果使用得当,它能提供极高的安全性和数据控制水平,这是其他文件系统难以匹敌的。
它的优势包括强大的 RAID 配置、多种冗余和完整性验证选项,以及在持续处理海量数据时的出色性能。它在专业 NAS 系统、备份服务器以及数据完整性至关重要的环境中备受青睐。
主要缺点是,除了精心设计的 RAIDZ 配置外,在断电或故障情况下,它更容易导致数据丢失。此外,对于普通台式电脑来说,这种配置也过于复杂,通常不建议没有系统管理经验的用户使用。
如何根据您的需求选择最佳文件系统
考虑了所有这些选项之后,最关键的问题就显而易见了:在每种情况下,哪种文件系统才是最佳选择?虽然没有一个适用于所有人的通用答案,但有一些相当明确的建议可以作为实用指南。
如果您想要一种安全可靠且易于使用的格式,EXT4 仍然是大多数用户最明智的选择。它是许多发行版的默认推荐格式,在稳定性、性能和易用性方面实现了良好的平衡,并且在机械硬盘和固态硬盘上都能很好地工作。
如果目标是充分发挥固态硬盘的性能并延长其使用寿命,那么值得考虑更现代的文件系统,例如 BtrFS 或 F2FS。BtrFS 在高级功能(例如快照、压缩等)方面提供了更多优势,而 F2FS 则更侧重于优化闪存的写入速度。具体选择取决于使用场景和用户的专业水平。
在服务器、家用NAS设备或需要配置多磁盘RAID阵列的系统中,如果追求最高的安全性和控制力,OpenZFS通常是首选方案。使用ZFS或OpenZFS格式化卷并将驱动器挂载到RAIDZ阵列中,可以在性能、冗余和故障转移能力之间实现强大的平衡。
同时,如果在该环境中需要访问 NTFS 分区数据,NTFSPLUS 就成为 Linux 中处理 Windows 磁盘的理想补充。它提供现代、快速且定义清晰的日志支持,可以弥补在两个世界之间无缝协作的缺失环节,而无需牺牲性能或使用质量存疑的驱动程序。
归根结底,关键在于巧妙地组合不同的组件:系统和主要数据使用原生 Linux 文件系统(EXT4、XFS、BtrFS、F2FS、OpenZFS),而当必须与 Windows 驱动器共存时,则使用 NTFSPlus 等驱动程序。这种策略充分发挥了每种技术的优势,并最大限度地减少了它们的劣势,从而打造出一个更加强大、高效且用户友好的 Linux 环境,以满足日常任务的需求。