首页 > 系统相关 >Linux切换内核版本

Linux切换内核版本

时间:2023-04-20 11:12:43浏览次数:240  
标签:-- Ubuntu generic menuentry 切换 Linux class 内核

Linux切换内核版本

有些软件会对Linux内核的版本有要求。为此我们需要安装并切换到指定的内核版本。本文以5.4.0-26-generic为例。

参考:LayerStack Tutorials - LayerStack - How to change the default Boot Kernel on Linux Cloud Servers

  • 下载指定版本
sudo apt-get install -y linux-image-${_target_kernel_}
sudo apt-get install -y linux-headers-${_target_kernel_}
  • 然后查看可用的内核版本
cat /boot/grub/grub.cfg | grep -E 'menuentry.+class.+class.+menuentry_id_option'

结果:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-69-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-69-generic-advanced-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-69-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-69-generic-recovery-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-60-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-60-generic-advanced-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-60-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-60-generic-recovery-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-58-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-58-generic-advanced-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.15.0-58-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-58-generic-recovery-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.4.0-26-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-advanced-53b6e16f-1415-457e-85fe-9805a4c3e773' {
        menuentry 'Ubuntu, with Linux 5.4.0-26-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-recovery-53b6e16f-1415-457e-85fe-9805a4c3e773' {

可以看到,里面一共包含两个带5.4.0-26-generic的版本。其中一个是recovery mode。我们不要选择recovery mode,选择正常的那个。

  • 然后修改系统的默认内核版本
sudo vi /etc/default/grub

可以看到其中的

GRUB_DEFAULT="1> 4"

我们把1> x中的x改为我们想要的版本。x就是在上面那个大表中你想要的版本是第几个。这里注意千万不要弄错!这里我具体地列出每个版本对应的编号

0 Ubuntu, with Linux 5.15.0-69-generic
1 Ubuntu, with Linux 5.15.0-69-generic (recovery mode)
2 Ubuntu, with Linux 5.15.0-60-generic
3 Ubuntu, with Linux 5.15.0-60-generic (recovery mode)
4 Ubuntu, with Linux 5.15.0-58-generic
5 Ubuntu, with Linux 5.15.0-58-generic (recovery mode)
6 Ubuntu, with Linux 5.4.0-26-generic
7 Ubuntu, with Linux 5.4.0-26-generic (recovery mode)

既然我想要的版本是5.4.0,那么这里就应该改成

GRUB_DEFAULT="1> 6"
  • 最后,更新配置并重启
sudo update-grub
sudo reboot

如果配置错了怎么办?

很不巧,我在配置默认内核版本的时候犯傻了。我把x改成了5,导致系统以一个recovery mode重启了。

由于我使用的是远程服务器,而recovery mode中并没有ssh服务,导致重启之后我就再也无法从远程访问服务器了。

于是没办法只能拜托师兄去机房手动重启服务器。我不知道具体的过程,但应该与grub2 - How can I boot with an older kernel version? - Ask Ubuntu差不多。

大致就是重启的时候,按住shift键,进入grub界面,在里面手动选择想要进入的内核版本即可。

但是手动启动后,默认的内核版本还是错的,此时仍然需要执行上面的流程,将默认版本改对,再次重启。

标签:--,Ubuntu,generic,menuentry,切换,Linux,class,内核
From: https://www.cnblogs.com/CQzhangyu/p/17336068.html

相关文章

  • 从Pandas快速切换到Polars :数据的ETL和查询
    对于我们日常的数据清理、预处理和分析方面的大多数任务,Pandas已经绰绰有余。但是当数据量变得非常大时,它的性能开始下降。我们以前的两篇文章来测试Pandas1.5.3、polar和Pandas2.0.0之间的性能了,Polars正好可以解决大数据量是处理的问题,所以本文将介绍如何将日常的数据ETL和......
  • Linux的tar命令
    tar命令可以用来创建和解压各种类型的压缩包,以下是常见的几种类型:1..tar文件.tar文件是最常见的压缩包类型,它将多个文件和目录打包成一个文件,但不进行压缩。使用tar命令创建.tar文件时,可以使用以下命令:```tar-cvfarchive.tarfile1file2dir1```使用tar命令解压.tar文件时......
  • linux ln命令
    功能介绍ln用于建立文件的链接,用法:硬链接ln原始链接文件链接文件软链接ln-s原始链接文件链接文件区别类别概念区别磁盘限制删除的影响硬链接建立和原文件完全一样的文件载入点磁盘必须相同删除链接或者原文件之一,仍然能够访问文件内容;两个文件全部删除,文......
  • Linux安装nacos并配置开机启动
    一、Nacos的安装、启动1.解压tar-zxvfnacos-server-1.4.1.tar.gz-C/usr/local注意:nacos的启动需要java的jdk环境支持才能成功运行。2.启动进入目录nacos解压包的bin目录:cd/usr/local/nacos/bin开启./startup.sh非集群模式开启:./startup.sh-mstandalone关闭......
  • linux 中安装 RSeQC 软件
     001、ubuntu系统(base)root@DESKTOP-IDT9S0E:~#lsb_release-aNoLSBmodulesareavailable.DistributorID:UbuntuDescription:Ubuntu20.04.5LTSRelease:20.04Codename:focal 02、查找该软件下的任意一个包(base)root@DESKTOP-IDT9S0......
  • 作为开发者,我们可以 “free”的下载、使用 Redhat Enterprise Linux (RHEL\rhel) ,挺
     通常,如果作为普通客户(redhat假定如此)去redhat的官方网站下载rhel,都是很繁琐的,甚至是不可能的。但是,当我们作为普通开发者则可以非常"free”的去redat的官方网站下载rhel! -----------------------------------------------------------------------不讲道德与法律层面......
  • Linux系统之文件共享目录设置方法
    (Linux系统之文件共享目录设置方法)一、本次实践目的1./data/soft的用户组为admin2./data/soft目录能被admin组的成员读取、写入和访问,除了root用户外其余用户无此权限。3.admin组用户有zhangsan/lisi/admin,kitty用户主组为kitty,属组为IT。4.在/data/soft下创建的文件,其组所......
  • 【Linux】基础开发工具使用 --- vim
    目录前言vim的基本概念具体操作插入模式命令模式下的指令底行模式下的指令vim的配置前言......
  • Linux 下 REST 客户端的新选择:Insomnia 3.0
    正在为 Linux 桌面端找一个免费的REST客户端?别睡不着觉了!试试Insomnia。这个应用是跨平台的,可以工作在Linux、macOS、Windows。开发者GregorySchier告诉我们他创造这个应用是为了“帮助开发者处理和RESTAPI的通信”。他还说,Insomnia已经有大约10000个活跃用户,9%......
  • Linux 下 REST 客户端的新选择:Insomnia 3.0
    正在为 Linux 桌面端找一个免费的REST客户端?别睡不着觉了!试试Insomnia。这个应用是跨平台的,可以工作在Linux、macOS、Windows。开发者GregorySchier告诉我们他创造这个应用是为了“帮助开发者处理和RESTAPI的通信”。他还说,Insomnia已经有大约10000个活跃用户,9%......