如何清理Linux旧内核并设置默认内核版本

文章目录

    • [1. 引言](#1. 引言)
    • [2. 检查和清理旧内核](#2. 检查和清理旧内核)
      • [2.1 检查 `/boot` 目录中的残留文件](#2.1 检查 /boot 目录中的残留文件)
      • [2.2 手动删除与旧内核相关的文件](#2.2 手动删除与旧内核相关的文件)
      • [2.3 更新 GRUB 配置](#2.3 更新 GRUB 配置)
      • [2.4 清理旧内核包(可选)](#2.4 清理旧内核包(可选))
    • [3. 安装并保留特定内核版本](#3. 安装并保留特定内核版本)
      • [3.1 安装内核版本 `5.15.0-119`](#3.1 安装内核版本 5.15.0-119)
      • [3.2 删除其他不需要的内核版本](#3.2 删除其他不需要的内核版本)
    • [4. 设置默认内核版本](#4. 设置默认内核版本)
      • [4.1 编辑 GRUB 配置文件,修改 `GRUB_DEFAULT` 设置](#4.1 编辑 GRUB 配置文件,修改 GRUB_DEFAULT 设置)
    • [5. 重启系统并验证](#5. 重启系统并验证)

1. 引言

在 Linux 系统中,旧的内核版本可能会在系统中积累,使得 GRUB 菜单变得冗长。

本文将介绍如何清理旧内核并设置系统默认使用的内核版本。

  • 为什么需要清理旧内核?

    节省磁盘空间,同时防止 GRUB 菜单中列出不必要的内核版本。

  • GRUB 菜单中仍然显示已删除内核的原因

    即使内核映像 (vmlinuz) 已被删除,/boot 目录中可能仍然存在与该内核版本相关的初始内存盘(initrd)文件,导致 GRUB 依旧在配置中包含这些文件。

2. 检查和清理旧内核

2.1 检查 /boot 目录中的残留文件

首先,检查 /boot 目录中是否存在与旧内核版本相关的残留文件:

bash 复制代码
ls /boot | grep 5.15.0-107

如果发现与 5.15.0-107-generic 内核相关的文件,需要手动删除。

2.2 手动删除与旧内核相关的文件

以下命令手动删除残留的内核文件:

bash 复制代码
sudo rm /boot/vmlinuz-5.15.0-107-generic
sudo rm /boot/initrd.img-5.15.0-107-generic

2.3 更新 GRUB 配置

删除残留文件后,使用以下命令重新生成 GRUB 配置:

bash 复制代码
sudo update-grub

这将确保 GRUB 配置文件不再包含已删除的内核版本。

2.4 清理旧内核包(可选)

为了彻底移除旧内核及其相关文件,使用以下命令清理系统:

bash 复制代码
sudo apt autoremove --purge

3. 安装并保留特定内核版本

3.1 安装内核版本 5.15.0-119

安装内核及头文件

使用以下命令安装 5.15.0-119 内核及其头文件:

bash 复制代码
sudo apt install linux-image-5.15.0-119-generic linux-headers-5.15.0-119-generic

3.2 删除其他不需要的内核版本

  • 检查已安装的内核版本

使用以下命令确认系统上安装的所有内核版本:

bash 复制代码
$ dpkg --list | grep linux-image   
ii  linux-image-5.15.0-107-generic             5.15.0-119.129~20.04.1                                           amd64        Signed kernel image generic                              
ii  linux-image-5.15.0-119-generic             5.15.0-119.129~20.04.1                                           amd64        Signed kernel image generic
ii  linux-image-generic-hwe-20.04              5.15.0.119.129~20.04.1                                           amd64        Generic Linux kernel image
ii  linux-image-unsigned-5.15.0-107-generic    5.15.0-107.117~20.04.1                                           amd64        Linux kernel image for version 5.15.0 on 64 bit x86 SMP
ii  linux-image-unsigned-6.8.4-060804-generic  6.8.4-060804.202404041833                                        amd64        Linux kernel image for version 6.8.4 on 64 bit x86 SMP
  • 删除不需要的内核版本及其头文件

若只想保留 5.15.0-119-generic6.8.4-060804-generic 内核,可以删除其他版本:

bash 复制代码
sudo apt remove --purge linux-image-5.15.0-107-generic linux-image-5.15.0-67-generic
sudo apt remove --purge linux-headers-5.15.0-107-generic linux-headers-5.15.0-67-generic
  • 自动清理未使用的依赖和配置文件

删除旧内核后,运行以下命令清理系统,以移除不再需要的依赖项:

bash 复制代码
sudo apt autoremove --purge

4. 设置默认内核版本

4.1 编辑 GRUB 配置文件,修改 GRUB_DEFAULT 设置

打开 GRUB 配置文件进行编辑:

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

找到 GRUB_DEFAULT 这一行,并将其设置为所需内核的菜单条目,例如:

bash 复制代码
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.4-060804-generic"

如下是修改后的样子

bash 复制代码
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.4-060804-generic"
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

GRUB_DISABLE_OS_PROBER=false

保存文件并退出编辑器后,运行以下命令更新 GRUB 配置:

bash 复制代码
sudo update-grub

5. 重启系统并验证

系统重启后,使用以下命令验证当前正在使用的内核版本:

bash 复制代码
uname -r

输出应显示为 6.8.4-060804-generic,表明系统已成功将其设置为默认启动的内核版本。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言