GRUB2:使用最大检测到的分辨率?

如何告诉GRUB2将其分辨率(以及传递给内核的分辨率)设置为它在启动时能够检测到的最大分辨率

这个答案应该能够回答你的问题。 - martin
2@severin:不,它并没有。这只告诉我如何将其设置为特定分辨率,而不是在启动时检测到的最大分辨率 - user541686
´vbeinfo´会告诉你支持的最大分辨率。然后你可以编辑/etc/default/grub来使用该分辨率。 - martin
4@severin: 你还是没有理解问题!!:( 我想要的是自动检测,而不是手动检测。 - user541686
你到底想做什么啊?你有像是可变分辨率这样的需求吗? - Amith KK
2@AmithKK:嗯,是的?我有可变的分辨率... - user541686
2个回答

我猜你问这个问题的原因是你在同一台Ubuntu机器上使用不同的显示器,希望GRUB2在所有显示器上都能够显示良好。然而,如果你担心Ubuntu启动后使用的分辨率,这个问题并没有解决这个问题。GRUB2不会将它选择的启动菜单分辨率“传递给内核”。
以root身份编辑/etc/default/grub。你可能想先备份一下:
sudo cp /etc/default/grub /etc/default/grub.old

你可以在终端中运行该命令,可以通过按下 Ctrl+Alt+T 打开终端。

要以 root 权限使用 Gedit 进行编辑,请运行以下命令:

gksu gedit /etc/default/grub

(或者如果您使用的是Kubuntu,可以运行kdesudo kate /etc/default/grub。)
如果您在终端中运行该命令而不是使用Alt+F2,您将在终端中收到许多消息。您会注意到这些消息并没有提到它们与您正在编辑的文件有关,所以没关系。
您会发现文件的一部分内容类似于以下内容:
# 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

取消注释(即去掉前导的#)“GRUB_GFXMODE”所在的行,并将分辨率从640x480更改为auto。该行现在应该是这样的:
GRUB_GFXMODE=auto

保存文件并退出编辑器。在终端中运行:
sudo update-grub

(这必须在每次修改/etc/default/grub后运行,以应用更改。)
现在重新启动,看看是否达到您想要的效果。
可能不会(因为它使用了“平台默认值”,可能不是最高可能的)。如果是这种情况,请再次编辑/etc/default/grub,并将该行更改为类似以下内容:
GRUB_GFXMODE=1600x1200,1280x1024,1024x768,800x600,640x480

你不一定要使用完全相同的那行代码。你应该列出所有你想尝试的分辨率,按照你希望尝试的顺序排列。我列出的分辨率是针对4:3宽高比的显示器最常见的分辨率,但是宽屏显示器(包括大多数笔记本屏幕)有不同的外形和使用不同的分辨率。维基百科上有一个常见分辨率列表可能会对你有所帮助。如果你知道每个设备所需的具体分辨率,你可以直接列出它们(最高的放在前面)。你应该在最后加上640x480auto。我建议这样做是因为我不知道GRUB2是否总是会尝试安全低分辨率,如果你不包含这个。

然后再次保存文件,再次运行sudo update-grub,再次重启,看看是否达到你的需求。

如果不行的话,你可能就没那么幸运了。GRUB2在启动后的显示方式与Ubuntu不同。GRUB2使用VESA BIOS扩展来以增强的分辨率(和色彩深度)显示引导菜单,并且机器通过VBE支持的最大分辨率并不总是与视频卡和显示器支持的最大分辨率一样高。 来源:官方GRUB2文档。(你会注意到版本号是1.99。有点令人困惑,但是事实如此。) [最后,感谢TechZilla指出原始版本中的一个严重错误。]

+1 绝对是一个可行的解决方案,尽管它并不完美。感谢你详细的回答,写得非常好! - user541686
2只是提醒一下,GRUB_GFXMODE=auto 几乎总能通过 VESA 获得最佳分辨率。VESA 的宽屏分辨率并没有标准化,我从来没有成功地在 Grub2 上使用过其中之一。我听说如果使用 Intel GFX 芯片和一些半复杂的 VESA 软补丁可能是可行的。据我所知,非 Intel GFX 芯片不支持这个功能。... 如果我的评论说得对的话,你应该给我点赞。:P - J. M. Becker
1@Mehrdad 把奖励给这个回答。据我所知,这是你能得到的最接近的了 :D - Amith KK
@AmithKK:我很有可能会这样做,不过我想我会等一下,让其他人有机会至少读一下问题,然后再决定奖励的对象哈哈。 :) - user541686

还有一个可用的图形用户界面选项。

Grub Customizer:

Grub Customizer允许编辑、重命名、重新排序或冻结Grub条目。它还允许更改Grub菜单的背景颜色或添加自定义图片,并支持BURG自定义。您还可以在Live CD/USB环境中使用Grub Customizer来修复启动问题。

安装:

按下Alt+Ctrl+T打开终端并运行以下命令:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

如何使用:

安装完成后,按下Alt+F2,输入grub-customizer,然后按下Enter

通过输入您的用户密码进行身份验证。

打开后,点击工具栏中的Preferences

enter image description here

在“外观”选项卡下启用“自定义分辨率”,并在文本框中输入“auto”。

enter image description here

或者在“高级”选项卡下启用“GRUB_GFXMODE”,并在其前面的文本字段中输入“auto”。您还可以将分辨率指定为一个或多个模式的序列,用逗号(“,”)或分号(“;”)分隔;每个模式将依次尝试,直到找到一个合适的。例如:
1440x900,1680x1050,1920x1200,2560x1600
或者指定深度(8、16或24):
1440x900x16,1680x1050x16,1920x1200x16,2560x1600x16

enter image description here

关闭“首选项”对话框,并在主窗口的工具栏上点击保存。就这样!

enter image description here

在终端中运行以下命令以删除Grub Customizer:
sudo apt-get autoremove --purge grub-customizer sudo add-apt-repository -r ppa:danielrichter2007/grub-customizer sudo apt-get update