前言:
今天给大家分享一篇ubuntu更换内核的系列文章之一。为什么要换内核呢,这个对于我们大部分人有一样的原因,例如你要跑的某个包只能在某一个特定的内核版本,或者你升级了你的ubuntu内核导致你的电脑驱动等出现问题,所以你需要更换你系统的内核。
作者:良知犹存
转载授权以及围观:欢迎关注微信公众号:羽林君
或者添加作者个人微信:become_me
情节介绍:
我也遇到类似的问题,在解决问题的过程中,发现和网上的文章有些不一样,甚至有些操作可以让我们更快的更换内核。所以特来分享一下。这里我就是按照自己遇到的情况,给大家做一个简单的分享。
步骤一:查看自己的版本,进行安装下载
首先我先来查看一下我当前的内核版本 我现在是5.11.0-38的版本,而我需要将我ubuntu内核修改为需要5.8.0-63
uname -a Linux lyn 5.11.0-38-generic #42~20.04.1-Ubuntu SMP Tue Sep 28 20:41:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
查询Linux指定版本的镜像:
apt-cache search linux| grep 5.8.0-63
一般来说我们有几种方式去安装你对应的内核,从官网上下载.deb包安装(下面有描述),也可以使用
apt-cache search linux
命令进行查找我们系统里面是否有对应的安装包选项,用apt-get install 进行安装会很快。
1、如果查询不到,可以在/etc/apt/sources.list配置中,加入源:deb http://security.ubuntu.com/ubuntu trusty-security main
2、也可以在http://kernel.ubuntu.com/~kernel-ppa/mainline/网站中找到所需的deb包
安装上面查到的指定版本内核的linux系统头文件及镜像
安装结束后,我们可以查看此时系统里面安装好的内核版本
其中可以看到5.8.0-63已经安装完成
dpkg --get-selections | grep linux-image
步骤二:安装显卡和网卡等驱动
其实步骤二是我的步骤三,因为大部分介绍的文章中都是安装内核之后直接进行内核启动顺序配置,然后我按照对应内核启动进去之后,发现我的电脑的显卡和网卡等驱动无法使用。
网上给的参考意见,都是让我用lsb_release -a命令之后,查看自己对应的网卡驱动型号,去官网下载驱动包进行编译和安装。
但是我不想进行随意下载编译和安装,所以我去电脑里面一点点搜索对应的包,看是否是自己遗漏了包。果然在一番对照下,我用dpkg --get-selections | grep linux(之前是grep linux-image命令,主要查看镜像,没有查看对应的配套的驱动包)命令比对出,我电脑本身完好驱动的5.11内核对应的全部包和我后续回退版本5.8.0的区别,发现我缺少与之对应的 modules-extra和tools包,
dpkg --get-selections | grep linux
查找到之后,我直接进行apt-get install进行安装这两个包
安装完之后进行重启,机器正常运行,显卡驱动和网卡驱动正常工作。 后来我发现,我们也可以在官网去下载对应的.dep,进行dep包的安装。
步骤三:选择对应内核做第一启动
首先查看当前系统中内核的启动顺序
grep 'menuentry' /boot/grub/grub.cfg
menuentry 'Ubuntu,Linux 5.8.0-63-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-63-generic-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea' { menuentry 'Ubuntu, with Linux 5.8.0-63-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-63-generic-recovery-f44d1976-8e56-4c37-8ce1-d345b8f923ea' {
例如,这里我想要更换5.8.0-63,就选择 Ubuntu,Linux 5.8.0-63-generic这一栏,注意不是(recovery mode).
复制上面信息中menuentry之后的单引号内的字符串
比如我是Ubuntu,Linux 5.8.0-50-generic
再修改内核启动顺序
注意:如果你升级的版本比当前内核版本高的话,默认新安装的内核就是第一顺序启动的,只需重启系统就行了,否则,则需要修改配置文件,具体如下:
vi /etc/default/grub
GRUB_DEFAULT=0
修改为
GRUB_DEFAULT=”Ubuntu,Linux 5.8.0-50-generic“
如果遇以下警告
警告: Please don't use old title `Ubuntu,Linux 5.8.0-63-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-63-generic' (for versions before 2.00) or `gnulinux-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea>gnulinux-5.8.0-63-generic-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea' (for 2.00 or later)
那我们还需要把 GRUB_DEFAULT=”Ubuntu,Linux 5.8.0-50-generic“
那我们还需要把 GRUB_DEFAULT=”Ubuntu,Linux 5.8.0-50-generic“
修改为
GRUB_DEFAULT=”Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic“
生效配置
sudo update-grub
然后关机重启,上面是修改系统内核启动步骤,但是我遇到一些问题,并不是很顺利,我中间还用了手工选项,进入我对应的内核中,下面是对应的选项。
在重启后的电脑初始化选项中选择ubuntu的高级选项
进入之后选择你对应要使用的内核
成功进入
结语
这就是我分享我在ubuntu使用中降低内核的使用的情况,如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。
作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。