在学习正点原子I.MX6Ul驱动移植时,想让NFS挂在根文件系统,但Ubuntu 22.04 在内核 6.10 以上版本默认禁用了 NFSv2 客户端支持,无法支持 nfs v2,因此想到降低内核版本。这里以内核版本5.19.0-051900-generic为例。
显示当前正在运行的内核版本:
uname -r
查看系统中已安装的所有内核版本(包括未运行的):
dpkg –list | grep linux-image
在下载之前先确认系统是 amd64 还是 arm64 等架构
dpkg –print-architecture
下载版本5.19.0的Linux内核(架构amd64)
Index of /mainline/v5.19

创造一个shell脚本,
vim install_kernel_5.19.0.sh
并将一下脚本内容复制到install_kernel_5.19.0.sh,并保存。
|
1 #!/bin/bash 2 set -e 3 VER=5.19.0-051900 4 ARCH=amd64 # arm64/armhf 请改这里 5 URL=https://kernel.ubuntu.com/mainline/v5.19 6 7 # 1. 创建临时目录 8 mkdir -p ~/kernel-5.19 && cd ~/kernel-5.19 9 10 # 2. 下载 4 个核心 deb 包 11 wget ${URL}/${ARCH}/linux-headers-${VER}_${VER}.202207312230_all.deb 12 wget ${URL}/${ARCH}/linux-headers-${VER}-generic_${VER}.202207312230_${ARCH}.deb 13 wget ${URL}/${ARCH}/linux-image-unsigned-${VER}-generic_${VER}.202207312230_${ARCH}.deb 14 wget ${URL}/${ARCH}/linux-modules-${VER}-generic_${VER}.202207312230_${ARCH}.deb 15 16 # 3. 安装 17 sudo dpkg -i *.deb 18 19 echo "清理临时文件…" 20 rm -rf kernel-5.19 |
赋予install_kernel_5.19.0.sh权限
chmod 777 install_kernel_5.19.0.sh
运行脚本
./ install_kernel_5.19.0.sh
待脚本执行完成后,使用命令如下命令查询,已安装的所有内核版本
dpkg –list | grep linux-image
如安装正确,则会看到

更改启动的内核:
sudo vim /etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.19.0-051900-generic"
更改grub文件之后需要更新:sudo update-grub
重启命令:sudo reboot
重启之后使用uname -r 查看内核版本,如下图所示,说明内核版本降级成功

使用sudu cat /proc/fs/nfsd/versions 查看 nfs 的版本,有+2 则说明 NFS 支持 V2 版本。

随后,使用NFS挂载根文件系统,就成功了。



