下载并修改ubuntu内核

下载并安装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。原理是:

  1. 当首次执行 sudo dpkg -i linux-image-5.15.0-25-generic_5.15.0-25.25_amd64.deb 命令时,dpkg 会尝试安装 .deb 文件。如果这个软件包有任何未满足的依赖项,dpkg 会报告错误并停止安装过程。

  2. 然后,当你执行 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 内容:

  1. 主菜单

    • 第 0 项:Debian GUN/Linux
    • 第 1 项Advanced options for Debian GUN/Linux(子菜单)
    • 第 2 项System setup
  2. 子菜单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

如下图为主菜单界面截图,图片与上述名称有出入,其中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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值