前言
入手了一个HT3盒子,刷了官方1.1.31版本固件本来非常好用的,前天系统弹出一个更新,手贱点了升级。升级后造成认不到硬盘。特别卡顿。发现是升级了最新版6.18.18内核的问题,原来的内核是6.12.41,现把降级内核方法分享记录一下。
解决方法
分两种情况,开SSH,进入到/boot目录下,查看旧内核在不在,如果不在,则到https://github.com/ophub/fnnas/releases/download/kernel\_fnnas/6.12.41-rockchip.tar.gz把这个内核下载更新到飞牛,对应的目录:然后再生成修改fnEnv.txt。
/lib/modules/ 内核模块
/boot/ 内核镜像目录
替换内核方法
- 准备工作:
- SSH 连接:通过 SSH 连接到你的飞牛主机,并切换到
root用户 (sudo -i)。 - 确认内核:操作前,用
uname -r确认一下当前使用的内核版本,以防万一。 - 备份数据:操作有风险,最重要的数据请一定提前备份。
- SSH 连接:通过 SSH 连接到你的飞牛主机,并切换到
- 手动替换内核文件:
- 将你准备的
vmlinuz-6.12.41-trim、System.map-6.12.41-trim和config-6.12.41-trim这三个文件,复制到/boot/目录下。 - 飞牛系统的内核模块存放在
/lib/modules/下。你还需要把新内核对应的模块目录(通常命名为6.12.41-trim)也复制过来。如果没有这个目录,系统启动时会因找不到驱动而失败。
- 将你准备的
- 更新 Initramfs (初始化文件系统):
- 这是最关键的一步。新内核需要生成一个
initrd.img-6.12.41-trim文件,才能在启动时加载必要的驱动。 - 在终端中执行以下命令来生成它:bashupdate-initramfs -c -k 6.12.41-trim
- 执行成功后,确认
/boot/目录下生成了initrd.img-6.12.41-trim文件。
- 这是最关键的一步。新内核需要生成一个
- 更新 Grub 引导并重启:
- 为了让系统知道这个新内核的存在,需要更新引导菜单。执行:nano /boot/fnEnv.txt,
- 将其中的 kernelfile=xxxxx 修改为 kernelfile=vmlinuz-6.12.41-trim。
- 完成后,输入
reboot重启系统。

代码说明
# 检查系统类型和 initramfs 工具
cat /etc/os-release | grep -E "NAME|VERSION"
which update-initramfs mkinitramfs mkinitcpio dracut
# 对于 Armbian/Debian/Ubuntu 系统(最可能),执行:
sudo update-initramfs -c -k 6.12.41-trim
# 如果上面的命令失败,尝试:
sudo mkinitramfs -o /boot/initrd.img-6.12.41-trim 6.12.41-trim
# 验证是否生成
ls -lh /boot/initrd* 2>/dev/null || echo "未生成 initrd"
验证配置:
# 查看最终配置
echo "=== fnEnv.txt ==="
cat /boot/fnEnv.txt
echo -e "\n=== 内核和 initrd 文件 ==="
ls -lh /boot/vmlinuz* /boot/initrd*
echo -e "\n=== 符号链接 ==="
ls -la /boot/vmlinuz /boot/initrd.img 2>/dev/null
# 为 initrd 创建符号链接(可选,便于管理)
sudo ln -sf initrd.img-6.12.41-trim /boot/initrd.img

最后重启生效,恢复正常。
