Linux 上几种 exFAT 驱动的区别
这三个项目都是为 Linux 提供 exFAT 文件系统支持的内核空间(Kernel-space)驱动,其主要区别在于来源、内核兼容性以及维护状态。
- exfat-nofuse
- 来源:最早由开发者从 Android 内核 v3.0 中移植而来。
- 名称含义:其名称 "no-fuse" 是为了区别于当时性能较低的 exfat-fuse(用户空间驱动)。
- 现状:该项目现已基本停止维护 (EOL),主要用于旧版 Linux 内核(如 v3.x 或早期的 v4.x)。
- exfat-linux
- 这是基于三星在 Linux 内核中贡献的主线 exFAT 驱动代码进行向后移植(Backport)版本。
- 定位:专为那些还没有集成原生 exFAT 驱动的 Linux 内核( v4.9 到 v5.4 之间) 提供支持。低于 v4.9 内核版本需要使用旧分支(old 分支)。Linux v5.4 起虽然已包含 exFAT 驱动,但版本严重过旧;由三星维护并经过大幅更新的 exFAT 驱动版本自 v5.7 起进入主线内核,所以建议 v5.4~v5.6 用户应使用这个回移植驱动。≥ v5.7 的内核版本,可直接使用内核自带的 exFAT 驱动。
- 现状:该项目本身已 停止更新(EOL)建议使用 linux-exfat-oot 替代。
- linux-exfat-oot
- 来源于 Linux 主线内核 exFAT 驱动代码,通过社区维护将其移植为独立的内核模块,和 exfat-linux 作用一样,使不含或较旧内核也能使用较新 exFAT 文件系统支持。
- 定位:linux-exfat-oot 是目前主流推荐的 backport 内核模块方案,用于在不含内核 exFAT 或版本偏旧内核上提供较新 exFAT 支持。
- 现状:目前还在持续维护更新
| 驱动名称 | 来源 / 背景 | 适用内核版本 | 维护状态 | 主要特点 / 备注 |
|---|---|---|---|---|
| exfat-nofuse | 从 Android 内核 v3.0 移植 | 旧版 Linux 内核(v3.x ~ 早期 v4.x) | 已停止维护 (EOL) | 内核空间驱动,"no-fuse"表示区别于性能低的 exfat-fuse(用户空间驱动) |
| exfat-linux | 基于三星主线 exFAT 驱动回移植 | Linux 内核 v4.9 ~ v5.4(v5.4~v5.6 推荐使用) | 已停止维护 (EOL) | 为旧内核提供较新 exFAT 支持;≥ v5.7 可直接用内核自带驱动 |
| linux-exfat-oot | 基于 Linux 主线 exFAT 驱动,社区维护的独立内核模块 | 不含内核 exFAT 或版本偏旧的内核 | 持续维护中 | 现代主流推荐方案,支持较新 exFAT 特性,适用于回移植场景 |
💡 总结:
- 如果你的内核版本很旧(v3.x/v4.x),可以用 exfat-nofuse,但不再更新。
- 内核 v4.9~v5.6 的用户推荐 exfat-linux,不过它也已经 EOL。
- 对于较新的内核,或者需要长期维护支持,linux-exfat-oot 是首选方案。