Linux 7.1合并全新NTFS驱动,实测写入稳定性碾压旧方案。作为每天在Win/Linux间切屏的创业者,以前用ntfs-3g拷大文件像debug内存泄漏——慢且心慌;Paragon闭源驱动更不敢上生产环境。
关键突破:
- 原生写入支持,告别fuse层性能损耗
- 代码主干维护,安全补丁响应快
- 兼容Win11 NTFS加密元数据(实测挂载无报错)
这相当于给跨平台工作流打了补丁。今早刚用它同步项目素材到Windows测试机,流畅得像SSD直连。有同好跑过压力测试吗?求分享IOPS数据。
Linux 7.1合并全新NTFS驱动,实测写入稳定性碾压旧方案。作为每天在Win/Linux间切屏的创业者,以前用ntfs-3g拷大文件像debug内存泄漏——慢且心慌;Paragon闭源驱动更不敢上生产环境。
关键突破:
这相当于给跨平台工作流打了补丁。今早刚用它同步项目素材到Windows测试机,流畅得像SSD直连。有同好跑过压力测试吗?求分享IOPS数据。
我靠之前在互联网厂做跨端测试的时候,被ntfs-3g坑得连夜改方案的阴影还没散呢!那会要把Linux环境下打包的十几个G的测试包导去Windows测试机,传一半直接掉盘,我蹲机房折腾到三点多,一开始还以为是硬盘坏了,查了俩小时日志才定位到是驱动炸了,平白损失了大半天的测试进度!后来换Paragon又怕闭源有版权风险,不敢往公用测试机装,每次要传文件都得临时装自己本机上,传完立刻卸,麻烦到爆炸。服了
这波NTFS3直接入主内核是真的神操作啊,相当于给双系统党直接把技能前摇给砍没了!我上周刚更了新内核试了下,传20G的历代书法碑帖高清扫描包,之前用ntfs-3g要二十多分钟,现在不到十分钟就跑完了,中途我切出去写了半页多宝塔碑都没卡,稳得一批。
我这周末刚好要测外接4T移动硬盘的连续读写性能,跑完了把IOPS数据贴你楼里。对了你们有没有试过连续传大文件三四个小时的场景?我之前用旧驱动最烦的就是长时间传输掉盘,要重传太磨人。
等你们多测几个场景没问题的话,我直接把单位那几台装了双系统的办公机全更了,干就完了!
看到提到“兼容Win11 NTFS加密元数据”,这里可能需要稍作澄清——NTFS3驱动目前支持的是标准NTFS属性(如$EA、$Reparse等),但对Windows的EFS(Encrypting File System)加密文件仍无法解密挂载。实测过几个场景:若文件在Windows端用EFS加密(即右键→高级→“加密内容以便保护数据”),Linux下挂载后虽能看见文件名,但读取会返回I/O错误;而所谓“加密元数据无报错”,大概率是指BitLocker未启用时,仅含普通ACL或USN日志的卷。
其实这其实引出一个更值得讨论的工程权衡:内核级NTFS驱动选择优先实现写入稳定性与元数据一致性,而非全功能兼容。从Linus在合并commit的comment能看出,社区明确拒绝了“为小众加密场景增加复杂状态机”的提案,转而聚焦于高频痛点——比如修复ntfs-3g在断电后极易产生$MFT碎片的问题。我上周用fio对5.15 vs 6.8内核做了对比测试(4K randwrite, queue_depth=64),新驱动IOPS提升约3.2倍,但延迟抖动(latency std dev)下降更显著,从旧方案的±18ms收敛到±3ms,这对频繁小文件写入的开发场景(比如npm install或git checkout)体验提升远大于理论吞吐量数字。
另外提一嘴冷知识:NTFS3源自Paragon早年开源的ntfs3 driver(注意不是闭源版),但经过Red Hat和SUSE工程师两年重构,移除了所有专有抽象层。现在代码里甚至保留了对NTFS 3.1(WinXP时代)压缩流的支持——虽然几乎没人用,但说明维护者刻意保持了向后兼容的“考古级”严谨。这种策略或许解释了为何它能快速过审:不追求大而全,而是把基础事务型操作做到符合POSIX预期。
话说回来,双系统用户真要传加密文件,不如考虑用VeraCrypt容器+exFAT中转?至少比赌EFS兼容性靠谱……有人试过在NTFS3上跑SQLite WAL journal吗?我担心日志回放时的元数据更新会不会触发隐式fragmentation。
看到“写入稳定性碾压旧方案”这个说法,忍不住插一句——从文件系统一致性模型的角度看,NTFS3 的所谓“稳定”,其实更准确地说是“在合理使用场景下显著降低了崩溃概率”,但离真正的事务安全还差得远。我上周刚好在跑一个对比测试:用 fio 对 NTFS3 和 ntfs-3g 分别做 4K 随机写 + 强制断电(拔电源),结果很有意思。嗯
ntfs-3g 在 fuse 层确实慢,但因为走用户态,多数操作是原子提交的,断电后虽然可能丢最近几秒数据,但极少出现元数据损坏;而 NTFS3 虽然快了近 3 倍(实测顺序写从 85 MB/s 提升到 240 MB/s),但在未启用 journaling 或未 sync 的情况下,一旦掉电,$MFT 记录错位的概率反而更高。我复现了三次:挂载后直接断电,再 mount -o ro 检查,两次出现“Orphaned MFT record”警告,需 ntfsfix 修复。
这其实暴露了一个隐藏前提:NTFS3 的稳定性提升,高度依赖上层应用主动调用 fsync() 或使用 O_SYNC。而很多用户(包括不少开发者)默认以为“能写进去就安全了”,殊不知 NTFS 本身不像 ext4 那样默认开启 ordered data mode。Windows 内部其实靠 Cache Manager + Lazy Writer + Transactional NTFS(虽已弃用但遗留逻辑仍在)来兜底,Linux 这边可没这套协同机制。
另外补充个冷知识:NTFS3 的代码虽进了主线,但它的 write path 目前仍绕过了内核的 block layer writeback throttling(见 fs/ntfs3/write.c),这意味着在高负载下可能饿死其他 I/O 请求——我在一台 64GB RAM 的机器上同时跑 PostgreSQL WAL 写和 NTFS3 大文件拷贝,iostat 显示 nvme0n1 的 await 一度飙到 1.2s,而 ext4 同场景下稳定在 8ms。
所以与其说“稳定性碾压”,不如说“在可控、同步良好的工作流中,性能与可用性达到了实用门槛”。对创业者日常传素材当然够用,但若用于数据库存储或 CI/CD 流水线中间件,建议还是加一层校验逻辑,比如 rsync --checksum 或写完后 stat + sha256sum 双确认。
嗯话说回来,你们有没有试过在 NTFS3 上跑 btrfs send/receive?我好奇它对稀疏文件和 reflink 的兼容性……