nfs下载镜像报错File lookup fail,TTTTTTTTTTTTTTT,内核 6.11.0降到5.15.0
首先参考这两篇博客进行尝试:
【嵌入式Linux开发】Ubuntu22.04切换Linux内核,启用nfs2,解决uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)
Linux——Uboot使用NFS出现Loading: T T T T T T T T /Loading: *** ERROR: File lookup fail
查看Linux内核版本
uname -a
Linux zzxtecho-VMware-Virtual-Platform 6.11.0-25-generic #25~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 15 17:20:50 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
查看已安装的内核版本
dpkg --get-selections | grep linux-image
linux-image-6.11.0-17-generic deinstall
linux-image-6.11.0-21-generic deinstall
linux-image-6.11.0-24-generic deinstall
linux-image-6.11.0-25-generic install
linux-image-6.11.0-26-generic install
linux-image-generic-hwe-24.04 install
运行以下命令查看当前挂载的 NFS 版本:
sudo cat /proc/fs/nfsd/versions
如果输出没有 +2 -2(即不支持 NFSv2),则需要手动启用。
我正在使用 Ubuntu 24.04(内核 6.11.0-25-generic),并且遇到 NFS 兼容性问题(Linux 6.2+ 默认不再支持 NFSv2)。
我的是只有6.11,没有低于6.2的内核,现在来解决这个问题。以下是解决方案:
Ubuntu 22.04 默认使用 5.15 LTS 内核,完美支持 NFSv2,并且长期维护(支持到 2027 年)。
步骤 1:添加 Ubuntu 22.04 的内核仓库
echo "deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/jammy-kernel.list
步骤 2:设置优先级,避免其他软件降级
echo "Package: linux-image-* linux-headers-* linux-modules-*" | sudo tee /etc/apt/preferences.d/jammy-kernel.pref
echo "Pin: release n=jammy" | sudo tee -a /etc/apt/preferences.d/jammy-kernel.pref
echo "Pin-Priority: 1001" | sudo tee -a /etc/apt/preferences.d/jammy-kernel.pref
步骤 3:更新软件包列表
sudo apt update
步骤 4:查找可用的 5.15 内核版本
apt list linux-image-5.15*-generic
步骤 5:安装 5.15 LTS 内核(示例版本:5.15.0-107)
sudo apt install linux-image-5.15.0-107-generic linux-headers-5.15.0-107-generic
步骤6:更新 GRUB 引导
sudo update-grub
步骤7:重启系统
sudo reboot
步骤8:开机时选择旧内核
- 重启时,在 GRUB 菜单 界面(长按 Shift 或 Esc 进入)
- 选择 Advanced options for Ubuntu(不要选带 recovery mode 的选项)
- 选择 5.15.0-107-generic 启动
步骤9:验证内核版本
uname -r
预期输出:
5.15.0-107-generic(或你安装的具体版本)
步骤10:未来想恢复默认内核(可选)
如果未来想切换回 6.11 内核:
sudo reboot
然后在 GRUB 菜单中选择原来的 6.11.0-xx-generic 内核。
注意事项
仅降级内核,不影响 Ubuntu 24.04 的其他软件。
NFSv2 支持:5.15 内核默认支持 NFSv2,无需额外配置。