下载并安装ubuntu内核
apt安装内核
sudo apt install linux-image-<version>-generic
dkpg安装内核
如果系统版本是ubuntu,版本大于20.04,可以在Search Results for linux-image (pkgs.org)里查询版本。
例如要下载5.15.0.25版本,点击进入该版本
找到download,复制Binary Package的地址
在linux界面执行下载
wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux-signed/linux-image-5.15.0-25-generic_5.15.0-25.25_amd64.deb
下载完成后,使用dpkg安装版本
sudo dpkg -i linux-image-5.15.0-25-generic_5.15.0-25.25_amd64.deb
如果提示依赖问题(一般来说就是缺少对应的linux-modules依赖),执行下面的命令
sudo apt install -y
执行这个命令就会下载 linux-modules-5.15.0-25-generic。原理是:
-
当首次执行
sudo dpkg -i linux-image-5.15.0-25-generic_5.15.0-25.25_amd64.deb
命令时,dpkg
会尝试安装.deb
文件。如果这个软件包有任何未满足的依赖项,dpkg
会报告错误并停止安装过程。 -
然后,当你执行
sudo apt -f install
命令时,APT(高级包装工具)会检查系统中所有未配置的包,并解决它们的依赖问题
再次执行安装命令
sudo dpkg -i linux-image-5.15.0-25-generic_5.15.0-25.25_amd64.deb
查看是否安装成功
dpkg -l | grep linux-image
那么,如果linux系统中存在多个版本,如何切换到其他版本呢
检查系统已安装的内核
该命令适用于大多数版本
find /boot/vmli*
/boot/vmlinuz-4.15.0-122-generic
/boot/vmlinuz-4.15.0-175-generic
ubuntu或Debian中
dpkg --list | grep linux-image
ii linux-image-4.15.0-122-generic 4.15.0-122.124 amd64 Signed kernel image generic
ii linux-image-4.15.0-175-generic 4.15.0-175.184 amd64 Signed kernel image generic
rc linux-image-4.15.0-76-generic 4.15.0-76.86 amd64 Signed kernel image generic
ii linux-image-generic 4.15.0.175.164 amd64 Generic Linux kernel image
Redhat中
rpm -qa kernel
检查系统安装内核的时间
zgrep -h 'status installed' /var/log/dpkg.log*| sort | grep linux-image
判断当前正在使用的内核
uname -rs
Linux 4.15.0-175-generic
前两位数字(在本例中为 4.15)是整个内核包。第三位数字是版本,第四位数字显示补丁和修复的级别
查看linux默认启动的内核
uname -a
设置默认kernel版本
在启动ubuntu时,进入内核引导界面,我们需要选择当前系统的内核版本,这里内核的版本在文件/boot/grub/grub.cfg中定义。
GRUB_DEFAULT
可取值为选项 ID、选项名称字符串以及 saved,选项 ID 是从 0 开始计数的。
-
选项 ID 和选项名称字符串都是指定 grub 默认菜单选项。
-
saved 使用
GRUB_SAVEDEFAULT
变量保存的或grub-set-default
命令设定的选项作为 grub 默认菜单选项。
方式一:设为选项ID
我们可以直接指定系统选择哪个内核版本,前提时需要查询期望内核版本的序号
执行
grep -E "menuentry" /boot/grub/grub.cfg
根据 grub.cfg
内容:
-
主菜单:
- 第 0 项:Debian GUN/Linux
- 第 1 项:
Advanced options for Debian GUN/Linux
(子菜单) - 第 2 项:
System setup
-
子菜单(
Advanced options for Ubuntu
):- 第 0 项:
Ubuntu, with Linux 4.15.0-148-generic
- 第 1 项:
Ubuntu, with Linux 4.15.0-148-generic (recovery mode)
- 第 2 项:
Ubuntu, with Linux 4.4.0-31-generic
- 第 3 项:
Ubuntu, with Linux 4.4.0-31-generic (recovery mode
- 第 0 项:
如下图为主菜单界面截图,图片与上述名称有出入,其中Ubuntu对应的是主菜单的第0项,Advance Option for Ubuntu对应的是主菜单中的第1项,System setup对应的是主菜单的第2项
如果我们希望系统默认选择4.04.0-31-generic版本(非recover),GRUB_DEFAULT
的值应这样配置
sudo vim /etc/default/grub
GRUB_DEFAULT="1> 2"
注意大于号与2之间有一个空格,否则系统重启识别不出来
更新grub.cfg
更新grub.cfg,这个文件是grub引导程序生成和维护的配置文件。如果您不运行这个命令,修改后的参数可能不会生效
sudo update-grub
方式二:设置为save模式
sudo vim /etc/default/grub
将GRUB_DEFAULT设置为saved
GRUB_DEFAULT=saved
再将GRUB_SAVEDEFAULT
变量若设置为 true,则会保留上一次的 grub 菜单选项,默认没有设置该变量。
GRUB_SAVEDEFAULT=true
更新grub.cfg
sudo update-grub
关于/boot/grub2/grub.cfg
不要直接编辑此文件。使用grub2-mkconfig 命令生成 grub.cfg。此命令使用 /etc/grub.d 中的模板脚本和生成 grub.cfg 时从 /etc/default/grub获取的菜单配置设置
重启服务器
登录系统管理后台,重启服务器
sudo reboot
选择默认版本(如果为save模式)
在系统进入启动界面时按ESC进入当进入 Grub 菜单,选择“Advanced options for Ubuntu”,然后选择要设置为系统默认的内核版本
比如我希望更换为linux-image-4.15.0-122-generic,那么选择该版本即可
20.04 - setting older kernel version as default - Ask Ubuntu
How to change default kernel in Ubuntu 22.04 | 20.04 LTS - Linux Shout (how2shout.com)