在 Ubuntu 22.04 中锁定内核版本(防止内核自动更新到新版本)可以通过以下步骤实现。以下是详细的操作指南:

### 1. 检查当前内核版本

首先,确认当前使用的内核版本:

```bash

uname -r

```

输出示例5.15.0-73-generic

### 2. 列出已安装的内核

查看系统中已安装的所有内核版本:

```bash

dpkg --list | grep linux-image

```

这会列出所有安装的内核包,例如:

```

linux-image-5.15.0-73-generic

linux-image-5.15.0-76-generic

```

### 3. 选择要锁定的内核版本

决定你想要锁定的内核版本(通常是当前正在使用的版本)。假设你想锁定 5.15.0-73-generic

### 4. 锁定内核版本

Ubuntu 使用 apt 包管理器来管理软件包,可以通过 apt-mark 命令锁定特定内核版本,防止其被更新或移除。

#### 锁定步骤:

1. 锁定特定内核包

执行以下命令,将目标内核版本标记为“hold”:

```bash

sudo apt-mark hold linux-image-5.15.0-73-generic

sudo apt-mark hold linux-headers-5.15.0-73-generic

```

说明:

- linux-image 是内核镜像包。

- linux-headers 是内核头文件包,通常也需要锁定。

- 如果你的内核版本是其他版本,替换为实际版本号。

确认锁定状态:

```bash

apt-mark showhold

```

输出将显示被锁定的包。

2. (可选)锁定通用内核元包

如果你希望确保系统不会安装新的内核版本,可以锁定以下元包:

```bash

sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic

```

这些元包控制通用内核的更新,锁定它们可以防止新内核版本的安装。

### 5. 设置默认启动内核(可选)

如果你有多个内核版本,可以通过修改 GRUB 配置来确保系统始终启动指定的内核版本。

1. 编辑 GRUB 配置文件

打开 GRUB 配置文件:

```bash

sudo nano /etc/default/grub

```

2. 设置默认内核

- 找到 GRUB_DEFAULT 行,修改为:

```bash

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-73-generic"

```

说明:你需要确认菜单项的确切名称。可以通过以下命令查看 GRUB 菜单项:

```bash

grep menuentry /boot/grub/grub.cfg

```

3. 更新 GRUB

保存文件后,更新 GRUB 配置:

```bash

sudo update-grub

```

4. 重启系统

重启以应用更改:

```bash

sudo reboot

```

### 6. (可选)移除其他内核版本

如果系统中安装了多个内核版本,可以移除不需要的版本以释放空间(但保留至少一个备用内核以防万一)。

1. 列出已安装内核

```bash

dpkg --list | grep linux-image

```

2. 移除不需要的内核

例如,移除 5.15.0-76-generic

```bash

sudo apt purge linux-image-5.15.0-76-generic linux-headers-5.15.0-76-generic

```

3. 清理残余文件

```bash

sudo apt autoremove

```

### 7. 验证锁定效果

运行系统更新,检查是否会安装新内核:

```bash

sudo apt update

sudo apt upgrade

```

如果内核被正确锁定,系统不会更新到新内核版本。

### 8. 解除内核锁定(如果需要)

如果未来需要解除锁定,运行以下命令:

```bash

sudo apt-mark unhold linux-image-5.15.0-73-generic

sudo apt-mark unhold linux-headers-5.15.0-73-generic

sudo apt-mark unhold linux-generic linux-image-generic linux-headers-generic

```

### 注意事项

- 备份重要数据:在操作内核或 GRUB 配置时,建议备份重要数据以防系统无法启动。

- 保留备用内核:不要移除所有非当前使用的内核,保留至少一个备用内核以确保系统在当前内核失效时仍可启动。

- HWE 内核:如果使用的是 Ubuntu 的 HWE(Hardware Enablement)内核,注意其更新策略可能与标准内核不同,可能需要额外锁定 HWE 相关包(如 linux-generic-hwe-22.04)。

通过以上步骤,你可以在 Ubuntu 22.04 中成功锁定内核版本,确保系统使用指定的内核。