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。