我如何让 GRUB 将不同的操作系统作为默认操作系统?

我如何让 GRUB 将不同的操作系统作为默认操作系统?

问题我如何让 GRUB 将其他操作系统设为默认操作系统?ubuntu 网站上介绍的所有常用方法都不起作用。我唯一没有尝试过的是 GRUB Customizer,因为我担心会破坏某些东西。

上下文我有多个操作系统,其中包括两个 Ubuntu 11.10 发行版。它们之间有区别,我们称它们为操作系统 A 和 B。我首先安装了操作系统 A,花了很多时间按照我喜欢的方式进行设置,然后我安装了操作系统 B,我可以稍微摆弄一下。到目前为止,GRUB 运行良好。问题是,安装 B 之后,GRUB 现在设置为默认启动 B,我无法更改它。我尝试了不同的方法(比如编辑一些文件来更改启动顺序,然后通过更新 GRUB sudo update-grub),或者使用启动管理器(所以 askubuntu 为我提供的关于这个问题的建议答案不算数),但都没有什么帮助。通常,我无法更改 GRUB 中的任何东西,甚至其他东西,比如带有操作系统的屏幕显示的时间(我希望它尽可能短,但它仍然是 10 秒)。所有尝试都是从 OS A 进行的。我没有尝试过 GRUB Customizer,因为那里显示的条目比启动过程中的多得多,所以我不知道发生了什么。我还想从 GRUB 菜单中删除一些条目(例如同一操作系统的不同内核版本),但在 GRUB Customizer 中我担心勾选错误的内容。

这是我的 etc/default/grub 文件:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=14
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
                #GRUB_INIT_TUNE="480 440 1"

答案1

除了第一行之外,您的 grub 配置中的所有内容看起来都很好:GRUB_DEFAULT=14。您的 Grub 菜单中真的有 15 个启动选项吗?

如果您希望菜单显示约 1 秒,则您的 Grub 超时设置是正确的。您关于 Grub 需要 19 秒的评论有点奇怪...我敢打赌,Grub 可能会因为菜单上没有第 15 项而感到困惑,需要很长时间来决定要做什么,然后自动选择第一个选项。

无论如何,请在菜单上查找要启动的操作系统及其位置。然后更改不正确的行。请记住,0 表示第一项,1 表示第二项,依此类推。

请记住在进行更改后更新 grub:sudo update-grub

答案2

请记住,您可能在多个位置安装了 Grub。也许 OS A 将 Grub 安装在其分区上,而 OS B 将 Grub 安装到其他位置,现在该位置是启动期间使用的位置。我似乎记得在某些安装过程中可以选择使用分区(例如sda1)而不是驱动器本身(例如sda)。只是猜测。

但是,我真的想补充一点,你也可以使用名称作为默认设置。我曾经有一台机器,我想将其默认为特定内核,但有时不得不更改默认设置,因为它可能会在更新过程中重新编号,因为它在列表中的位置会进一步下降。

再举一个例子,在我现在使用的机器上,我的 grub 中有一行是我在玩星际争霸 II 时经常使用的:

GRUB_DEFAULT="Windows 7 (loader) (on /dev/sda2)"

通过使用引号和 grub 菜单上显示的名称,您可以避免偶尔重新编号默认选择。

相关内容