当需要指定Ubuntu操作系统启动的不同内核版本时,这可能会变得有点棘手。因此,在这篇文章中,我们将探讨一些实用的方法,以便指定Ubuntu操作系统所需的内核版本。
安装内核的步骤非常简单,我们可以先查看一下当前的内核版本和GRUB版本。
uname -r
5.15.0-50-generic
查看grub版本
grub-install --version
grub-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 ]; thenmenuentry_id_option="--id"menuentry_id_option=""
export menuentry_id_option
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
menuentry '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