温馨提示×

Debian如何恢复旧内核

小樊
43
2026-07-13 06:14:13
栏目: 智能运维

在 Debian 系统中,如果你升级内核后想恢复到旧内核,通常不需要重装系统,只要旧内核还在,就可以通过 GRUB 引导菜单重新设置默认内核 来恢复。下面按常见场景说明。


一、确认旧内核是否还存在

先查看当前系统中是否还保留着旧内核:

dpkg --list | grep linux-image

或:

ls /boot/vmlinuz-*

如果你能看到类似:

linux-image-5.10.0-21-amd64
linux-image-5.10.0-23-amd64

说明旧内核还在。


二、通过 GRUB 临时启动旧内核(最常用)

1️⃣ 重启系统

sudo reboot

2️⃣ 进入 GRUB 菜单

  • 启动时 按住 Shift(BIOS)
  • 反复按 Esc(UEFI)

3️⃣ 选择旧内核

依次进入:

Advanced options for Debian GNU/Linux

选择 旧版本内核(不要选 recovery mode),回车启动。

✅ 如果系统能正常启动,说明旧内核可用。


三、将旧内核设为默认(永久恢复)

方法一:修改 GRUB 默认启动项(推荐)

1️⃣ 查看 GRUB 菜单项

grep -E 'menuentry|submenu' /boot/grub/grub.cfg

你会看到类似:

menuentry 'Debian GNU/Linux'
submenu 'Advanced options for Debian GNU/Linux'
  menuentry 'Debian GNU/Linux, with Linux 5.10.0-21-amd64'
  menuentry 'Debian GNU/Linux, with Linux 5.10.0-23-amd64'

记下你想恢复的 menuentry 的序号(从 0 开始)。

2️⃣ 修改 GRUB 配置

sudo nano /etc/default/grub

修改或添加:

GRUB_DEFAULT="1>2"

含义:

  • 1 → Advanced options
  • 2 → 第 3 个内核(从 0 开始)

3️⃣ 更新 GRUB

sudo update-grub

4️⃣ 重启

sudo reboot

方法二:使用 grub-set-default(适合熟悉 GRUB 的用户)

sudo grub-reboot "1>2"
sudo reboot

四、如果旧内核已经被删除(补救方法)

1️⃣ 重新安装旧内核

先查看可用版本:

apt-cache search linux-image

安装指定版本(示例):

sudo apt install linux-image-5.10.0-21-amd64
sudo apt install linux-headers-5.10.0-21-amd64

然后按 第二部分 设置默认内核。


五、防止旧内核被自动删除(推荐)

Debian 默认可能自动清理旧内核,可以锁定:

sudo apt-mark hold linux-image-5.10.0-21-amd64
sudo apt-mark hold linux-headers-5.10.0-21-amd64

取消锁定:

sudo apt-mark unhold linux-image-5.10.0-21-amd64

六、常见问题

❓ 启动后进 initramfs / 黑屏

  • 可能是 initrd 损坏
sudo update-initramfs -c -k 5.10.0-21-amd64
sudo update-grub

❓ 没有 GRUB 菜单

编辑:

sudo nano /etc/default/grub

设置:

GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu

然后:

sudo update-grub

七、总结(快速流程)

# 查看内核
dpkg -l | grep linux-image

# 重启选择旧内核
reboot → Advanced options

# 设置默认
修改 /etc/default/grub → update-grub

如果你愿意,可以告诉我:

  • Debian 版本(如 11 / 12)
  • 物理机 / 虚拟机 / VPS
  • 当前内核版本

我可以给你精确到命令级别的恢复方案。

0