首页 > 系统相关 >更改linux默认启动内核版本,修改 GRUB 设置

更改linux默认启动内核版本,修改 GRUB 设置

时间:2024-01-30 10:13:16浏览次数:23  
标签:GRUB grub -- 68c6 generic 内核 linux insmod ab3a

简介:

在本文中,我们将讨论如何在 GRUB 引导加载器中更改默认启动的 Linux 内核版本。这对于在多个内核版本间切换非常有用。已在Ubuntu上验证可用。告别直接修改/boot/grub/grub.cfg的土办法。

查看目前linux上面的内核版本

# 方法一
ls /boot/vmlinuz-*
# 方法二:
cat /boot/grub/grub.cfg | grep menuentry

# 查看目前使用的内核版本
uname -r

以:Linux 5.15.0-86-generic切换到 Linux 5.11.0-40-generic为例子。

步骤概述:

1.确认目标内核版本在 GRUB 菜单中的位置
查看 /boot/grub/grub.cfg ,找到想要设置为默认的内核版本对应的 menuentry。记住它在菜单中的位置,计数从 0 开始。具体例子见下面“grub.cfg实例”

cat /boot/grub/grub.cfg

2.编辑 GRUB 配置文件
打开 /etc/default/grub,使用管理员权限。使用文本编辑器,如 nano 或 vim

sudo vim /etc/default/grub

3.修改 GRUB_DEFAULT 变量
在 /etc/default/grub 文件中找到 GRUB_DEFAULT 行。如果目标内核位于子菜单中,使用格式 "主菜单位置>子菜单位置"。例如,如果目标内核是 “Advanced options” 子菜单中的第三个选项(计数为 2),(具体例子见下面“grub.cfg实例”,一下子就懂了),则设置为:

#GRUB_DEFAULT=0     #一般默认是 这个,把它注释掉即可。
GRUB_DEFAULT="1>2"

4.更新 GRUB 配置
保存对 /etc/default/grub 的更改后,运行以下命令更新 GRUB:

sudo update-grub

5.重启系统
完成上述步骤后,重启系统。系统现在应该会默认启动到新设置的内核版本。

sudo reboot

注意:

  • 直接编辑 /boot/grub/grub.cfg 文件是不推荐的,因为这个文件会在系统更新或执行 update-grub 命令时被自动覆盖。
  • 在做出任何更改之前,请备份相关文件,以防万一出现配置错误。

 

grub.cfg实例

位置:/boot/grub/grub.cfg,摘录其中内容如下:

### main manu(主菜单),number 0,  starting with 0. => vim /etc/default/grub : GRUB_DEFAULT=0
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  0ca8df87-68c6-4792-ab3a-cf10e70c71c9
        else
          search --no-floppy --fs-uuid --set=root 0ca8df87-68c6-4792-ab3a-cf10e70c71c9
        fi
        linux   /boot/vmlinuz-5.15.0-86-generic root=UUID=0ca8df87-68c6-4792-ab3a-cf10e70c71c9 ro  quiet splash $vt_handoff
        initrd  /boot/initrd.img-5.15.0-86-generic
}
### main manu(主菜单),number 1
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
        ### submain manu(子菜单),number 0,starting with 0.  => vim /etc/default/grub : GRUB_DEFAULT="1>0"
        menuentry 'Ubuntu, with Linux 5.15.0-86-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-86-generic-advanced-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
                recordfail
                load_video
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                else
                  search --no-floppy --fs-uuid --set=root 0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                fi
                echo    'Loading Linux 5.15.0-86-generic ...'
                linux   /boot/vmlinuz-5.15.0-86-generic root=UUID=0ca8df87-68c6-4792-ab3a-cf10e70c71c9 ro  quiet splash $vt_handoff
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.15.0-86-generic
        }
        ### submain manu(子菜单),number 1,  => vim /etc/default/grub : GRUB_DEFAULT="1>1"
        menuentry 'Ubuntu, with Linux 5.15.0-86-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-86-generic-recovery-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
                recordfail
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                else
                  search --no-floppy --fs-uuid --set=root 0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                fi
                echo    'Loading Linux 5.15.0-86-generic ...'
                linux   /boot/vmlinuz-5.15.0-86-generic root=UUID=0ca8df87-68c6-4792-ab3a-cf10e70c71c9 ro recovery nomodeset dis_ucode_ldr
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.15.0-86-generic
        }
        ### submain manu(子菜单),number 2,  => vim /etc/default/grub : GRUB_DEFAULT="1>2"
        menuentry 'Ubuntu, with Linux 5.11.0-40-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-40-generic-advanced-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
                recordfail
                load_video
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                else
                  search --no-floppy --fs-uuid --set=root 0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                fi
                echo    'Loading Linux 5.11.0-40-generic ...'
                linux   /boot/vmlinuz-5.11.0-40-generic root=UUID=0ca8df87-68c6-4792-ab3a-cf10e70c71c9 ro  quiet splash $vt_handoff
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.11.0-40-generic
        }
        ### submain manu(子菜单),number 3,  => vim /etc/default/grub : GRUB_DEFAULT="1>3"
        menuentry 'Ubuntu, with Linux 5.11.0-40-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-40-generic-recovery-0ca8df87-68c6-4792-ab3a-cf10e70c71c9' {
                recordfail
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod ext2
                set root='hd0,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                else
                  search --no-floppy --fs-uuid --set=root 0ca8df87-68c6-4792-ab3a-cf10e70c71c9
                fi
                echo    'Loading Linux 5.11.0-40-generic ...'
                linux   /boot/vmlinuz-5.11.0-40-generic root=UUID=0ca8df87-68c6-4792-ab3a-cf10e70c71c9 ro recovery nomodeset dis_ucode_ldr
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-5.11.0-40-generic
        }
}

 


觉得有用,就点个赞吧

标签:GRUB,grub,--,68c6,generic,内核,linux,insmod,ab3a
From: https://www.cnblogs.com/qusixing/p/17995926

相关文章

  • Linux挂载新磁盘到根目录
    Linux挂载新磁盘到根目录添加磁盘到需要挂载的机器上lsblk查看硬盘挂载情况,sdb,sdc为我新挂载的磁盘fdisk-l查看挂载之前的分区情况,为新硬盘创建分区fdisk/dev/sdb,终端会提示:Command(mforhelp):输入:n依次输入p和1接着便会提示卷的起始地址和结束地址,都保持......
  • windows配置linux开发环境
    VSCode中安装插件:Remote-WSL扩展、RemoteDevelopment扩展安装检查:在左下角有一个远程状态的标记这个标记可以看出vscode在远程还是本地工作。点击后可选择需要的操作。......
  • linux利用shell+crontab自动备份mysql数据库
    一.准备条件,得先安装一个mysql数据库mysql5.7数据库安装教程https://www.cnblogs.com/magepi/p/16983507.html 二.然后准备编写shell脚本编写备份单个库shell脚本#!/bin/bash#保存备份个数,备份3天数据number=3#备份保存路径backup_dir=/opt/mysqlbackup#日期dd=......
  • django打包(linux)
    1.新建uvicorn文件(1)安装uvicorn插件pipinstalluvicorn(2)新建main.py文件fromuvicorn.serverimportConfig,Serverfromserver.asgiimportapplicationconfig=Config(app=application,host="0.0.0.0",port=8000,loop="asyncio",log_level=&q......
  • UTF-8格式编码的文件分为带BOM和不带BOM windows下编程,Linux下编程建议使用“UTF-8无
    UTF-8格式编码的文件分为带BOM和不带BOMwindows下编程,Linux下编程建议使用“UTF-8无BOM格式,“建议使用”UTF-8带BOM格式“Notepad++支持“UTF-8无BOM格式”和“UTF-8带BOM格式”两种UTF-8。一直以来不知道二者有什么区别。程序员它们的区别是:UTF-8带BOM格式,就是在文件头添加......
  • 清理linux命令记录
    Linux清理痕迹的一些方法1,暴力省事直接删除首先是比较暴力省事的操作,直接清除当前用户bash历史记录,可以直接echo空进去。echo"">~/.bash_history然后history的话,可以通过c参数直接删除。linux查看历史命令在Linux中,可以使用以下命令来查看历史命令:使用history命......
  • linux内核-2.Linux 内核makefile编译过程
    1zImage编译_all是默认目标,如果使用命令make或者makeall编译Linux的话此目标就会被匹配。KBUILD_EXTMOD为空的,因此194行的代码成立,因此_all依赖all。all又依赖vmlinux,开始编译vmlinux。makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-distcleanmakeARCH=armCR......
  • linux的初步认识
    Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(LinusBenedictTorvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、......
  • Linux C实现在线检测
    通过ping某个服务器,检测设备是否internet是联通的。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>#include<unistd.h>#include<fcntl.h>#definedbg(fmt,args...)printf("\033[1m[%s]%03d:"f......
  • Linux C语言 检测IP冲突
    分析一个基于C语言实现的IP冲突检测工具。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>#include<getopt.h>#include<arpa/inet.h>#definedbg(fmt,args...)printf("\033[1m[%s]%03d:"fmt&quo......