更改运行 Ubuntu 18.04 的 AWS 实例的默认内核

更改运行 Ubuntu 18.04 的 AWS 实例的默认内核

1.问题总结 我在 AWS 上有一个运行 Ubuntu 18.04 的实例。内核版本是 5.4.0。我已经安装了内核 4.15.0,但无法将其设置为默认值。

2. 我尝试过的方法

A)我在 /etc/default/grub 中设置了以下值

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_SUBMENU=y

并确保 /etc/default/grub.d/50-cloudimg-settings.cfg 中没有 GRUB_DEFAULT 的值

使用以下命令为 GRUB_CONFIG 创建环境变量

export GRUB_CONFIG=`sudo find /boot -name "grub.cfg"

我使用重建了 grub.cfgsudo update-grub并重新启动了实例,但运行时没有发现活动内核有任何变化uname -r

B)我还尝试了删除不再需要的内核的解决方案(此处描述)(https://stackoverflow.com/questions/25993363/how-to-remove-a-newly-installed-kernel),但该实例状态检查失败,我无法使用 SSH 连接到它。

C) 我将 GRUB_DEFAULT 的值设置为 menu_string GRUB_DEFAULT="gnulinux-advanced-0d5e1897-19aa-4121-b1f8-2c7e0f833c4d>gnulinux-4.15.0-20-generic-advanced-0d5e1897-19aa-4121-b1f8-2c7e0f833c4d",使用 重建了 grub.cfg sudo update-grub,但重启后仍然没有变化。

答案1

打开终端并写入:

uname -r

这是你开始前的内核版本。现在,让我们更改它!

在终端中写入:

grub-install --version

记住它显示的 GRUB 版本。现在打开文件:

vi /boot/grub/grub.cfg 

检查您想要的版本,并取其名称。例如:

    menuentry 'Ubuntu, with Linux 4.15.0-188-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-188-generic-advanced-7e6f0fb2-8fc4-4e31-92ef-912be559e099' {
            recordfail
            load_video

如果您的 GRUB 版本低于 2.00,则名称为:

Ubuntu 的高级选项>Ubuntu,使用 Linux 4.15.0-188-generic

否则是:

gnulinux-高级-7e6f0fb2-8fc4-4e31-92ef-912be559e099>gnulinux-4.15.0-188-通用-高级-7e6f0fb2-8fc4-4e31-92ef-912be559e099

现在,在终端中:

sudo vi /etc/default/grub

按键盘上的“i”键修改文件。转到显示 GRUB_DEFAULT 的行并粘贴先前的名称。它应该是 grub >2(而不是 GRUB_DEFAULT=0):

GRUB_DEFAULT="gnulinux-4.15.0-188-generic-advanced-7e6f0fb2-8fc4-4e31-92ef-912be559e099>gnulinux-4.15.0-188-generic-advanced-7e6f0fb2-8fc4-4e31-92ef-912be559e099"

按下键盘上的“Esc”键。输入 :wq 并按回车键。文件已保存。现在重新执行 grub。如果你输入错误,它会告诉你应该怎么做!

sudo update-grub

现在重启:

sudo reboot

检查你的内核版本!

uname -r

我只做了这个,对我来说很有效。它是带有 Ubuntu 18.04 和内核 5.4 的 EC2。

相关内容