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-directory | DIR | 指定引导目录,而不是使用默认的/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菜单)
评论区