
故障描述:
一台Ubuntu 24.04.03 LTS服务器,突然断电后无法正常启动,卡在如下界面:

原因分析:
断电造成了系统内核文件丢失,导致 /boot 分区的文件系统损坏,GRUB引导配置无法正确指向内核文件
修复过程:
重启系统到内核选择界面


带*的是当前启动的内核,就是这个内核出现故障,无法正常启动,
后面带(recovery mode)的是对应内核的“恢复模式”,
现在我们选择另外一个内核,这个是第三个选项,回车。

现在应该就能正常启动系统了,登录系统之后查看系统内核
uname -r #查看系统当前启动的内核版本
dpkg --list | grep linux-image | grep -v 'linux-image-extra' #列出当前系统中所有内核

rc:已删除但配置文件仍保留(可以安全清理)
ii:已安装(正常状态)
当前运行的内核:6.14.0-37-generic 状态为 ii(已安装),说明它是系统当前使用的有效内核。
其他内核版本:
大量 6.11.x 和 6.14.x 版本存在,多数为 rc 状态,说明这些是旧内核,已被卸载但残留配置。
6.17.0-19-generic 状态为 ii,说明它也是当前安装的内核之一,就是它出现故障,导致系统无法启动,需要清理掉
6.8.0-41-generic 状态为 iF,表示该包安装不完整或失败,可能是断电导致的残留问题。
#执行自动清理(清除所有 rc 状态的残留)
sudo apt autoremove --purge
sudo apt remove --purge $(dpkg -l | grep '^rc' | grep 'linux-image-6.11' | awk '{print $2}')
#这将删除 6.14.0-24 到 6.14.0-36 的所有残留
sudo apt remove --purge linux-image-6.14.0-{24,27,28,29,33,34,35,36}-generic
#删掉6.17.0-19-generic这个内核
sudo apt purge linux-image-6.17.0-19-generic linux-headers-6.17.0-19-generic
#更新 GRUB 引导菜单,此命令会重新生成 /boot/grub/grub.cfg,确保启动菜单只包含当前可用内核。
sudo update-grub
#验证清理结果
dpkg --list | grep linux-image
#重启系统
sudo reboot
扩展阅读:
Ubuntu 24.04.03 LTS服务器设置开机进入字符界面
1、检查当前默认启动模式
systemctl get-default
如果输出为 graphical.target,说明当前默认进入图形界面。
如果输出为 multi-user.target,说明已经是命令行模式,无需修改。
2、设置默认进入字符界面
sudo systemctl set-default multi-user.target
3、重启系统生效
sudo reboot
4、临时切换启动模式
如果你已经设置成了字符界面启动,但临时需要进入图形界面,不需要修改默认配置并重启。只需在命令行下执行以下命令即可立即唤醒图形服务:
sudo systemctl isolate graphical.target
5、再设置默认进入图形界面
sudo systemctl set-default graphical.target
sudo reboot
6、临时切换字符模式
sudo systemctl isolate multi-user.target
Ubuntu 24.04.03 LTS服务器设置开机默认启动内核
1、确认目标内核的 GRUB 菜单索引
GRUB 启动菜单项从 0 开始计数。根据上面内核选择界面,菜单结构如下:
第 0 项:Ubuntu, with Linux 6.17.0-19-generic
第 1 项:Ubuntu, with Linux 6.17.0-19-generic (recovery mode)
第 2 项:Ubuntu, with Linux 6.14.0-37-generic ← 目标
第 3 项:Ubuntu, with Linux 6.14.0-37-generic (recovery mode)
2、修改 GRUB 配置文件
打开终端,使用文本编辑器编辑 /etc/default/grub 文件:
sudo nano /etc/default/grub
找到 GRUB_DEFAULT=0 这一行,将其修改为:GRUB_DEFAULT="1>2"
解释:GRUB 菜单索引是从 0 开始计算的。“1”代表主菜单的第 2 项,也就是 Advanced options for Ubuntu;“2”代表子菜单里的第 3 项Ubuntu, with Linux 6.14.0-37-generic;中间用大于号 > 连接。
保存并退出编辑器(在 nano 中按 Ctrl+O 保存,Ctrl+X 退出)
3、更新 GRUB 配置并重启
sudo update-grub
sudo reboot
重启后,系统将自动选择索引为 2 的内核(即 6.14.0-37-generic)启动
4、验证当前内核版本
uname -r
如果输出为 6.14.0-37-generic,则设置成功。
#锁定内核
sudo apt-mark hold linux-generic
#解锁内核
sudo apt-mark unhold linux-generic
5、要恢复默认内核,只需将 GRUB_DEFAULT 改回 0 并再次执行 sudo update-grub && sudo reboot 即可。
6、查看当前系统安装了几个内核
sudo dpkg --list | grep linux-image | grep ^ii
ls /boot/vmlinuz-*
Ubuntu 24.04.03 LTS服务器清理旧内核
1、确认当前运行的内核
uname -r
2、执行自动清理命令
sudo apt update
sudo apt autoremove --purge
3、更新 GRUB 引导菜单
sudo update-grub
至此,Ubuntu服务器突然断电后无法启动故障解决办法完成。

②190706903
③203744115



