在 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 中成功锁定内核版本,确保系统使用指定的内核。