当前位置: 首页 > news >正文

【Linux 内核构建】如何查看 Linux 系统中可以选择的内核有哪一些?如何切换 Linux kernel 版本?

背景

在折腾内核版本时,遇到的问题,遂将各方面的答案整理在一起。

解决方法

1. 查看 grub 菜单【一般在服务器上可能不用此方法】

在系统启动时,grub 菜单会列出所有可用的内核选项。要查看这些选项:

  1. 重启系统:在系统启动时,按住 Shift 键(在 BIOS 系统上)或 Esc 键(在 UEFI 系统上)来显示 grub 菜单。

  2. 查看内核列表:在 grub 菜单中,你可以看到所有已安装的内核版本。每个条目代表一个内核版本和相关的启动选项。

2. 使用 grub 配置文件查看

grub 配置文件(通常为 /boot/grub/grub.cfg)包含了所有可用的内核选项。可以查看这个文件来了解所有可用的内核版本:

这是 grub.cfg 中的信息,可以过滤一下。

grep menuentry /boot/grub/grub.cfg

这个命令会显示所有在 grub 菜单中可用的内核版本。例如:

menuentry 'Ubuntu, with Linux 6.10.2-damon' --class ubuntu --class gnu-linux --class gnu --class os ... menuentry 'Ubuntu, with Linux 5.15.0-58-generic' --class ubuntu --class gnu-linux --class gnu --class os ...

3. 列出 /boot 目录中的内核文件

/boot 目录通常包含所有内核映像文件和相关的 initrd 文件。你可以列出这个目录中的文件来查看所有已安装的内核版本:

ls /boot

输出可能会类似于:

 

4. 使用 dpkg 列出已安装的内核(Debian/Ubuntu 系统)

如果你使用的是 Debian 或 Ubuntu 系统,可以使用 dpkg 命令列出已安装的内核包:

相关文章:

  • docker 安装 rabbitmq
  • Java内存马系列 | SpringMVC内存马 - 下 | SpringMVC 内存马分析
  • 人工智能在行动:利用人工智能扩展您的显示和视频工作
  • AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理
  • QT6聊天室项目 网络通信实现逻辑分析
  • 优化算法与正则化
  • Tomcat服务详解
  • 我与Linux的爱恋:yum和vim以及gcc的使用
  • A题 农村公交与异构无人机协同配送优化
  • Rust:Restful API 服务程序开发详述
  • 【ShuQiHere】从残差思想到 ResNet:深度学习的突破性创新
  • 【Python系列】只更新非空的字段
  • 【阅读文献】一个使用大语言模型的端到端语音概要
  • 无法用 FileZilla 传送文件的解决方案
  • AIGC简化文件管理:Python自动重命名Word和PDF文件
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《Java编程思想》读书笔记-对象导论
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 2019年如何成为全栈工程师?
  • Angular数据绑定机制
  • Date型的使用
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • nfs客户端进程变D,延伸linux的lock
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python爬虫--- 1.3 BS4库的解析器
  • SpringBoot 实战 (三) | 配置文件详解
  • SQLServer之索引简介
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云购买磁盘后挂载
  • 从零开始在ubuntu上搭建node开发环境
  • 分类模型——Logistics Regression
  • 经典排序算法及其 Java 实现
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 小试R空间处理新库sf
  • 自动记录MySQL慢查询快照脚本
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #{}和${}的区别?
  • #laravel 通过手动安装依赖PHPExcel#
  • #每天一道面试题# 什么是MySQL的回表查询
  • (C#)一个最简单的链表类
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (第61天)多租户架构(CDB/PDB)
  • (第一天)包装对象、作用域、创建对象
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (十八)Flink CEP 详解
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)u-boot-nand.bin的下载
  • (状压dp)uva 10817 Headmaster's Headache
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .env.development、.env.production、.env.staging
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core 项目指定SDK版本
  • .net SqlSugarHelper