侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux grub2-set-default命令教程:如何设置GRUB菜单的默认启动项(附实例详解和注意事项)

Linux grub2-set-default命令介绍

grub2-set-default命令是一个用来设置GRUB菜单的默认启动项的命令。GRUB是一个广泛使用的引导和系统加载管理器,它可以让我们在同一台计算机上使用不同的操作系统,或者以不同的方式启动同一个系统,例如Linux的图形模式、文本模式或者恢复模式。使用grub2-set-default命令,我们可以在不修改配置文件的情况下,临时或者永久地改变默认的启动项。

Linux grub2-set-default命令适用的Linux版本

grub2-set-default命令适用于使用GRUB 2作为引导管理器的Linux系统,例如Ubuntu,Debian,Fedora,CentOS等。如果你的系统使用的是旧版本的GRUB,你应该使用grub-set-default命令。如果你不确定你的系统使用的是哪个版本的GRUB,你可以使用grub-install --version命令来查看。如果你的系统没有安装GRUB 2,你可以使用你的系统的包管理工具来安装,例如在Ubuntu上,你可以使用sudo apt install grub2命令,在CentOS上,你可以使用sudo yum install grub2命令。

Linux grub2-set-default命令的基本语法

grub2-set-default命令的基本语法如下:

grub2-set-default [OPTION] MENU_ENTRY

其中,MENU_ENTRY可以是菜单项的索引(从0开始),也可以是菜单项的ID(使用$menuentry_id_option指定)。

Linux grub2-set-default命令的常用选项或参数说明

grub2-set-default命令的常用选项或参数如下表所示:

选项参数说明
-h显示帮助信息
-v显示版本信息
--boot-directoryDIR指定引导目录,而不是使用默认的/boot
--no-floppy不检查软盘驱动器
--verbose输出详细的信息

Linux grub2-set-default命令的实例

实例1:查看当前的默认启动项

如果我们想要查看当前的默认启动项,我们可以使用grub-editenv命令,它是一个用来编辑GRUB环境块的命令。我们可以使用grub-editenv list命令来列出当前的环境变量,其中saved_entry就是当前的默认启动项。例如:

[linux@bashcommandnotfound.cn ~]$ grub-editenv list
saved_entry=0

这表示当前的默认启动项是菜单中的第一个(索引为0)。

实例2:设置默认启动项为第二个菜单项

如果我们想要设置默认启动项为第二个菜单项(索引为1),我们可以使用grub2-set-default 1命令,然后使用sudo update-grub命令来更新GRUB配置文件。例如:

[linux@bashcommandnotfound.cn ~]$ grub2-set-default 1
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为第二个菜单项,也就是Windows 10。

实例3:设置默认启动项为指定的菜单项ID

如果我们想要设置默认启动项为指定的菜单项ID,我们可以使用grub2-set-default命令,然后使用sudo update-grub命令来更新GRUB配置文件。我们可以在/boot/grub/grub.cfg文件中查看每个菜单项的ID,它们是使用$menuentry_id_option指定的。例如,如果我们想要设置默认启动项为Ubuntu文本终端,我们可以使用grub2-set-default "gnulinux_text_terminal"命令,其中gnulinux_text_terminal是该菜单项的ID。例如:

[linux@bashcommandnotfound.cn ~]$ grub2-set-default "gnulinux_text_terminal"
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为Ubuntu文本终端。

实例4:设置默认启动项为上次选择的菜单项

如果我们想要设置默认启动项为上次选择的菜单项,我们可以使用GRUB的环境块功能,它可以保存和加载一些环境变量。我们可以在/etc/default/grub文件中设置GRUB_DEFAULT=saved和GRUB_SAVEDEFAULT=true,然后使用sudo update-grub命令来更新GRUB配置文件。这样,每次我们选择一个菜单项,它就会被保存到环境块中,下次启动时,它就会成为默认的启动项。例如:

[linux@bashcommandnotfound.cn ~]$ sudo nano /etc/default/grub
# ...
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=saved
# ...
GRUB_SAVEDEFAULT=true
# ...
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为上次选择的菜单项。

实例5:设置默认启动项为内存测试

如果我们想要设置默认启动项为内存测试,我们可以使用grub2-set-default命令,然后使用sudo update-grub命令来更新GRUB配置文件。我们可以在/boot/grub/grub.cfg文件中查看内存测试的菜单项ID,它是memtest86+。例如:

[linux@bashcommandnotfound.cn ~]$ grub2-set-default "memtest86+"
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为内存测试。

实例6:设置默认启动项为恢复模式

如果我们想要设置默认启动项为恢复模式,我们可以使用grub2-set-default命令,然后使用sudo update-grub命令来更新GRUB配置文件。我们可以在/boot/grub/grub.cfg文件中查看恢复模式的菜单项ID,它是gnulinux-advanced-c60731dc-9046-4000-9182-64bdcce08616>gnulinux-5.15.0-46-generic-recovery-c60731dc-9046-4000-9182-64bdcce08616²。例如:

[linux@bashcommandnotfound.cn ~]$ grub2-set-default "gnulinux-advanced-c60731dc-9046-4000-9182-64bdcce08616>gnulinux-5.15.0-46-generic-recovery-c60731dc-9046-4000-9182-64bdcce08616"
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为恢复模式。

实例7:设置默认启动项为双系统的Windows 10

如果我们想要设置默认启动项为双系统的Windows 10,我们可以使用grub2-set-default命令,然后使用sudo update-grub命令来更新GRUB配置文件。我们可以在/boot/grub/grub.cfg文件中查看Windows 10的菜单项ID,它是osprober-chain-9C3A-4B8E。例如:

[linux@bashcommandnotfound.cn ~]$ grub2-set-default "osprober-chain-9C3A-4B8E"
[linux@bashcommandnotfound.cn ~]$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-45-generic
Found initrd image: /boot/initrd.img-5.15.0-45-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
done

这表示我们设置了默认启动项为Windows 10。

以上是一些grub2-set-default命令的实例,你可以根据你的需求来选择和修改。

Linux grub2-set-default命令的注意事项

  • grub2-set-default命令只能在系统启动前使用,如果系统已经启动,我们可以使用grub-reboot命令来设置下一次启动的菜单项。
  • grub2-set-default命令需要root权限,我们可以使用sudo命令来提升权限。
  • grub2-set-default命令需要更新GRUB配置文件才能生效,我们可以使用sudo update-grub命令来更新。
  • 如果我们使用grub2-set-default命令时,输入了一个不存在或者无效的菜单项,我们可能会遇到bash: grub2-set-default: command not found的错误,这表示我们需要安装GRUB 2,或者检查我们的输入是否正确。

Linux grub2-set-default相关命令

除了grub2-set-default命令,还有一些和GRUB菜单相关的命令,我们可以用它们来管理和修改GRUB的配置和行为。下面是一些常用的相关命令:

  • grub-set-default命令:设置GRUB菜单的默认启动项(适用于旧版本的GRUB)
  • grub-reboot命令:设置GRUB菜单的下一次启动项(不影响默认启动项)
  • grub-editenv命令:编辑GRUB的环境块(用来保存和加载一些环境变量)
  • grub-install命令:安装或者重新安装GRUB到设备
  • grub-mkconfig命令:生成GRUB的配置文件
  • grub-mkpasswd-pbkdf2命令:生成GRUB的密码哈希(用来加密GRUB菜单)
0

评论区