Debian系统的多内核共存

目录

一、多内核共存概念

二、Debian如何实现多内核共存?

1.内核以软件包的形式存在

2.GRUB选择内核

三、实操:安装、切换和清理内核

[1.查看当前系统已安装的内核( ii 表示已安装)](#1.查看当前系统已安装的内核( ii 表示已安装))

2.安装新内核

3.切换默认启动内核


一、多内核共存概念

多内核共存是指在同一Debian系统中,同时安装多个不同版本的Linux内核,并且允许在系统启动时让用户选择使用哪一个内核。

Linux内核是操作系统的核心,负责管理硬件、进程调度、内存分配等核心功能。但是内核也会变化,新内核会修复漏洞、支持新硬件、优化性能,而旧内核更稳定,对某些老硬件可能更优化。Debian的多内核共存特性,正是为了平衡"新功能"与"稳定性"的需求。

二、Debian如何实现多内核共存?

1.内核以软件包的形式存在

Debian内核以软件包的形式存在,通过apt管理,每个内核版本对应独立的包:

  • 内核镜像包:linux-image-<版本号>-<架构>,例如linux-image-4.19.0-amd64
  • 内核头文件包:linux-headers-<版本号>-<架构>,例如linux-headers-4.19.0-amd64

这种"一内核一包"的设计,让安装/卸载内核就像管理普通软件一样简单。安装新内核时,旧内核不会自动删除,多版本内核可独立存在。

2.GRUB选择内核

Debian系统默认使用GRUB作为启动管理器,GRUB会自动扫描系统中已安装的内核,并在启动界面列出所有已安装的内核供用户选择。

GRUB原理:

  • 每次安装新内核后,自动触发update-grub命令,GRUB读取/boot目录下的内核文件,生成新的启动菜单
  • 启动时,用户通过键盘选择要加载的内核(默认使用最新版本内核,超时后自动进入)

三、实操:安装、切换和清理内核

1.查看当前系统已安装的内核( ii 表示已安装)
bash 复制代码
dpkg -l | grep linux-image
2.安装新内核
bash 复制代码
#自动安装当前稳定版本最新内核
sudo apt install linux-image-amd64
#安装指定版本内核
sudo apt install linux-image-5.15.0-78-amd64
#安装云服务器优化内核
sudo apt install linux-image-cloud-amd64
#安装实时内核
sudo apt install linux-image-rt-amd64
3.切换默认启动内核

(1)提取GRUB菜单中所有内核相关的条目

bash 复制代码
grep 'menuentry ' /boot/grub/grub.cfg | cut -d "'" -f 2

示例输出如下,第一行 Debian GNU/Linux 是主菜单,默认指向最新内核,即第二行。带Linux版本号的条目是实际可启动的内核,带recovery mode的条目是救援模式。

bash 复制代码
Debian GNU/Linux
Debian GNU/Linux, with Linux 5.10.0-28-amd64
Debian GNU/Linux, with Linux 5.10.0-28-amd64 (recovery mode)
Debian GNU/Linux, with Linux 5.10.0-26-amd64
Debian GNU/Linux, with Linux 5.10.0-26-amd64 (recovery mode)

(2)修改GRUB配置,指定默认内核

GRUB的核心配置文件是 /etc/default/grub

bash 复制代码
sudo vim /etc/default/grub

默认GRUB_DEFAULT=0,表示默认启动内核是GRUB菜单条目的序号0,即Debian GNU/Linux。可以将GRUB_DEFAULT值改为想要默认启动的内核序号(见(1),菜单条目按顺序从0开始编号),也可以将GRUB_DEFAULT值改为想要默认启动的内核菜单条目名称。

bash 复制代码
GRUB_DEFAULT=3  # 对应第4个条目(从0开始)
bash 复制代码
GRUB_DEFAULT='Debian GNU/Linux, with Linux 5.10.0-26-amd64'
相关推荐
bksczm2 小时前
linux之线程概念和控制
linux·开发语言·c++
爱网络爱Linux3 小时前
Linux proc 目录安全加固
linux·运维·rhce·rhca·红帽认证·proc 目录安全加固
hehelm3 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip
MindUp3 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
ICECREAM3 小时前
环形队列设计——基于共享内存的高效进程间通信
linux
pt10433 小时前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络
kdxiaojie3 小时前
Linux 驱动研究 —— I2C (5)
linux·运维·笔记·学习
会周易的程序员4 小时前
从零构建多核CPU负载自适应控制系统
linux·c++·笔记·物联网·测试工具
ZXXstarstar4 小时前
2026年电池安全使用年限的量化决策:什么时间到期最需要替换?
linux·运维·服务器·电池
网络小白不怕黑4 小时前
httpd监控
linux·运维·服务器