当需要指定Ubuntu操作系统启动的不同内核版本时,这可能会变得有点棘手。因此,在这篇文章中,我们将探讨一些实用的方法,以便指定Ubuntu操作系统所需的内核版本。
安装内核的步骤非常简单,我们可以先查看一下当前的内核版本和GRUB版本。
uname -r5.15.0-50-generic
查看grub版本
grub-install --versiongrub-install (GRUB) 2.04-1ubuntu26.17
下面是在Ubuntu中如何下载和安装指定的内核的步骤:
- 打开终端窗口,输入以下命令以更新软件包列表:
sudo apt-get update
- 输入以下命令以查看可用的内核版本:
apt-cache search linux-image
- 选择需要安装的内核版本(此处我指定了Ubuntu-5.15.0-60版本),并输入以下命令以安装它:
sudo apt-get install -y linux-image-5.15.0-60-generic linux-headers-5.15.0-60-generic linux-modules-5.15.0-60-generic linux-modules-extra-5.15.0-60-generic
如果在Ubuntu操作系统中存在比下载的指定内核版本更高的版本,它将成为系统默认的内核版本,导致无法启动到想要的指定内核。因此,在这种情况下,需要修改GRUB配置以手动选择指定的内核版本进行启动。
cat /boot/grub/grub.cfg |grep menuentry
输出结果
if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" menuentry_id_option=""export menuentry_id_optionset menu_color_normal=white/blackset menu_color_highlight=black/light-graymenuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f8bc5767-5931-4d42-b097-0e38b08767b7' {submenu 'Ubuntu 的高级选项' $menuentry_id_option 'gnulinux-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7' { menuentry 'Ubuntu,Linux 5.15.0-69-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-69-generic-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7' {menuentry 'Ubuntu, with Linux 5.15.0-69-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-69-generic-recovery-f8bc5767-5931-4d42-b097-0e38b08767b7' {menuentry 'Ubuntu,Linux 5.15.0-60-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-60-generic-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7' {menuentry 'Ubuntu, with Linux 5.15.0-60-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-60-generic-recovery-f8bc5767-5931-4d42-b097-0e38b08767b7' {menuentry 'Ubuntu, Linux 5.15.0-50-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-50-generic-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7' { menuentry 'Ubuntu, with Linux 5.15.0-50-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-50-generic-recovery-f8bc5767-5931-4d42-b097-0e38b08767b7' {menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {# This file provides an easy way to add custom menu entries. Simply type the# menu entries you want to add after this comment. Be careful not to change
在结果中选取Ubuntu,Linux 5.15.0-60-generic
修改grub
- 输入以下命令以打开GRUB文件:
sudo nano /etc/default/grub
- 在打开的文件中找到以下行:
GRUB_DEFAULT=0
- 将其更改为以下内容:
GRUB_DEFAULT="Ubuntu,Linux 5.15.0-60-generic"
- 保存并关闭文件。
- 在命令行中输入以下命令以更新GRUB配置文件:
sudo update-grub
- 更新后会输出如下结果,重点关注Warning行的内容
Sourcing file `/etc/default/grub'Sourcing file `/etc/default/grub.d/init-select.cfg'正在生成 grub 配置文件 ...找到 Linux 镜像:/boot/vmlinuz-5.15.0-69-generic找到 initrd 镜像:/boot/initrd.img-5.15.0-69-generic找到 Linux 镜像:/boot/vmlinuz-5.15.0-60-generic找到 initrd 镜像:/boot/initrd.img-5.15.0-60-generic警告: Please don't use old title `Ubuntu,Linux 5.15.0-60-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu,Linux 5.15.0-60-generic' (for versions before 2.00) or `gnulinux-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7>gnulinux-5.15.0-60-generic-advanced-f8bc5767-5931-4d42-b097-0e38b08767b7' (for 2.00 or later)Adding boot menu entry for UEFI Firmware Settings完成
- 因为当前的GRUB版本是2.0后的,按照其提示的名字再次修改GRUB
GRUB_DEFAULT="gnulinux-advanced-6ffc12d0-f92e-41de-b890-ab11bef41c78>gnulinux-5.15.0-50-generic-advanced-6ffc12d0-f92e-41de-b890-ab11bef41c78"
- 保存并关闭文件。
- 在命令行中再次更新GRUB配置文件:
sudo update-grub
重启系统,此时已经自动进入了指定的内核
来源地址:https://blog.csdn.net/weixin_39764008/article/details/129878685