上一篇 下一篇 分享链接 返回 返回顶部

香港服务器服务器重启失败?教你如何让 Ubuntu 记住正确的内核启动!

发布人:欢子 发布时间:2026-01-19 03:59 阅读量:13
 香港服务器服务器重启失败?教你如何让Ubuntu记住正确的内核启动!

 服务器重启后无法正常启动,排查后发现是默认加载的内核有问题。手动选择某个内核可以进入系统,但每次重启后,系统仍然尝试使用故障内核,导致无法自动进入正确的环境。

 网上很多方法建议直接修改/etc/default/grub,但如果操作失误,可能会让系统无法启动。因此,我找到了一个更安全、更简单的方法,让Ubuntu自动记住上次成功启动的内核,避免每次都要手动选择。

 1.先确认当前系统使用的内核

 在更改默认内核之前,先确认当前正在运行的内核版本:

 uname-r

 示例输出:

 5.15.0-43-generic

 这表明系统当前使用的是5.15.0-43-generic内核。

 2.查看所有已安装的内核

 Ubuntu可能安装了多个内核版本,我们可以通过以下命令查看所有可用的内核:

 dpkg--get-selections|greplinux-image

 示例输出:

 linux-image-5.13.0-30-generic  deinstall

 linux-image-5.13.0-52-generic  deinstall

 linux-image-5.15.0-41-generic  install

 linux-image-5.15.0-43-generic  install

 linux-image-generic-hwe-20.04  install

 分析输出:

 标记install的是当前系统可用的内核。

 标记deinstall的表示这些内核已经被卸载或不再使用。

 3.让系统自动记住当前启动的内核

 通常,我们可以手动修改/etc/default/grub来指定默认内核,但如果配置错误,可能会导致系统无法启动。因此,我们采用更安全的方法――让GRUB记住上次成功启动的内核,并在下次自动使用它。

 3.1编辑GRUB配置

 打开GRUB配置文件:

 sudonano/etc/default/grub

 在文件中添加以下两行:

 GRUB_SAVEDEFAULT=trueGRUB_DEFAULT=saved

 参数解析:

 GRUB_SAVEDEFAULT=true:每次成功启动后,系统都会自动保存当前启动的内核。

 GRUB_DEFAULT=saved:让GRUB记住上次启动的内核,而不是始终选择默认的0(第一个内核)。

 4.更新GRUB并重启

 修改完GRUB配置后,运行以下命令更新GRUB使更改生效:

 sudoupdate-grub

 然后重启服务器:

 sudoreboot

 5.在GRUB界面手动选择正确的内核

 当系统启动时:

 按住Shift(BIOS机型)或ESC(UEFI机型)进入GRUB菜单。

 选择“AdvancedoptionsforUbuntu”。

 选择可以正常启动的内核,然后按Enter进入系统。

 这次成功启动的内核会被GRUB记住,并在下次重启时自动使用,无需每次手动选择。

 6.验证默认启动的内核是否生效

 启动后,检查当前运行的内核:

 uname-r

 如果返回的版本是你刚才选择的内核,就说明设置成功了。

 7.清理不需要的旧内核(可选)

 如果系统中安装了多个旧内核,可以清理掉不再使用的版本,释放磁盘空间。

 查看所有已安装的内核:

 dpkg--list|greplinux-image

 卸载旧内核(示例删除5.13.0-30):

 sudoaptremove--purgelinux-image-5.13.0-30-generic

 清理无用的依赖文件:

 sudoaptautoremove

 更新GRUB配置:

 sudoupdate-grub

 8.如果修改GRUB配置导致系统无法启动怎么办?

 如果/etc/default/grub配置错误,导致系统无法启动,可以使用以下方法恢复:

 8.1进入GRUB恢复模式

 重新启动系统,在启动时按住Shift(BIOS机型)或ESC(UEFI机型)进入GRUB菜单。

 选择“AdvancedoptionsforUbuntu”,然后选择一个可用的旧内核进入系统。

 8.2还原GRUB配置

 进入系统后,打开终端:

 sudonano/etc/default/grub

 将GRUB_DEFAULT=saved改回默认值:

 GRUB_DEFAULT=0

 然后更新GRUB并重启:

 sudoupdate-grub

 sudoreboot

目录结构
全文