飞牛系统FNOS添加NTFS3模块并挂载NTFS分区
本文于 2025年10月21日 实践并再次补充更新
本文步骤已经验证,为初版整理,如有遗漏细节,可以和我沟通。
由于飞牛(FNOS)内核使用的是精简版内核,内核中没有NTFS3驱动,导致无法加载NTFS分区。 但是我的文件都是存储于NTFS硬盘分区的,挂载NTFS分区功能还是很有必要的。FNOS社区也有不少反馈的声音,但是官方貌似还没有计划将挂载NTFS分区功能开发例如路线图。
由于迫切的想挂载NTFS,所以自己尝试解决了。下面分享自行编译NTFS3模块并在FNOS使用的过程。
后面的编译过程中需要到的依赖,可以提前安装
sudo apt install flex bison libncurses-dev pkg-config libssl-dev libelf-dev
1. 安装必要的依赖
sudo apt update
sudo apt install build-essential linux-headers-$(uname -r)
2. 下载 Linux 内核源码
由于 ntfs3 是 Linux 内核中的 fs/ntfs3 目录下的模块,我们需要获取与 6.12.18-trim 版本匹配的源码。
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.18.tar.xz
tar -xf linux-6.12.18.tar.xz
cd linux-6.12.18
3. 配置内核源码
复制系统的当前内核配置文件,以匹配 6.12.18-trim 内核的配置:
cp /boot/config-$(uname -r) .config
make oldconfig
然后启用 NTFS3 模块:
make menuconfig
进入 File systems -> DOS/FAT/NT Filesystems,确保 NTFS3 选项 (CONFIG_NTFS3_FS) 被选为 m(模块)。
File systems --->
DOS/FAT/NT Filesystems --->
<M> NTFS read/write support
然后执行:
make olddefconfig
4. 仅编译 NTFS3 模块
不需要编译整个内核,只编译 ntfs3 模块:
make M=fs/ntfs3 modules
编译完成后,fs/ntfs3/ 目录下应该会生成 ntfs3.ko 模块文件。
**** 需要注意的是,由于FNOS的内核是精简内核,编译会遇到无法找到链接符号的问题,这时候可以通过编译所有内核模块解决,编译整个内核时间会比较长,需要耐心等待。**
内核完成编译
make modules_prepare
make modules -j$(nproc)
同样在编译完成后可以在 fs/ntfs3/ 目录下应该会生成 ntfs3.ko 模块文件。
5. 安装 NTFS3 模块
将编译好的模块拷贝到 /lib/modules/6.12.18-trim/kernel/fs/ntfs3/ 并更新 depmod:
sudo cp fs/ntfs3/ntfs3.ko /lib/modules/6.12.18-trim/kernel/fs/ntfs3/
sudo depmod -a
然后尝试手动加载:
sudo modprobe ntfs3
如果没有报错,检查模块是否成功加载:
lsmod | grep ntfs3
为了保持系统干净,也可以复制ntfs3.ko到FNOS系统。
系统路径为 /lib/modules/6.12.18-trim/kernel/fs/ntfs3/ ,注意权限问题,权限应为 644
6. 挂载 NTFS 分区
假设你的 NTFS 分区在 /dev/sdXn(比如 /dev/sdb1),可以测试挂载:
sudo mount -t ntfs3 /dev/sdb1 /mnt
如果挂载成功,可以将其加入 /etc/fstab,使其在系统启动时自动挂载:
echo "/dev/sdb1 /mnt ntfs3 defaults 0 0" | sudo tee -a /etc/fstab
7. 解决模块丢失问题
如果内核更新后 ntfs3.ko 丢失,你可能需要重新编译并安装它。可以创建一个 dkms 模块,或者将 ntfs3.ko 复制到 /lib/modules/6.12.18-trim/extra/,然后执行:
sudo depmod -a
这样即使系统更新,ntfs3 仍然可用。
教程到此就完成了ntfs3的编译以及挂载,可以进入飞牛继续折腾了。
评论