如何安全地更改 grub2 屏幕分辨率?

Bin*_*ife 69 grub2 screen display-resolution

grub2 不太适合我的笔记本电脑可以支持的最佳屏幕分辨率 (1280 x 800)。

如何在不使用第三方应用程序的情况下执行此操作?

fos*_*dom 83

要安全地做到这一点,需要两个步骤。

第 1 步:找到首选模式

重新启动并按住Shift以显示您的 grub。按C进入控制台模式。然后输入(对于 18.04 之前的 Ubuntu 版本):

$ vbeinfo
Run Code Online (Sandbox Code Playgroud)

对于 Ubuntu 18.04 及更高版本:

$ videoinfo
Run Code Online (Sandbox Code Playgroud)

这将显示 grub 如何识别您的显示器的各种内容。底部是“首选模式”-在您的情况下,它应该说 1280x800。记下该值。

注意:有时,一些有问题的显卡会错误地为 Grub 提供错误的首选分辨率 - 如果首选模式比您预期的要高得多,请在显示的列表中选择您预期的最接近的模式。

Esc返回 grub 并按Enter启动。

第二步:在grub中设置分辨率

到达您的终端并输入

$ sudo nano /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

找到线

#GRUB_GFXMODE=640x480
Run Code Online (Sandbox Code Playgroud)

删除#并更改640x480为您写下的首选模式。例如:

GRUB_GFXMODE=1280x800
Run Code Online (Sandbox Code Playgroud)

保存,然后输入

$ sudo update-grub
Run Code Online (Sandbox Code Playgroud)

注意:首选模式必须在 vbeinfo 列出的模式中。例如,如果您的首选模式是 1920x1080(常见的 16x9 纵横比设置),则 vbeinfo 不支持您的首选模式并且可能无法正常工作。事实上,从 Ubuntu 13.04 开始,vbeinfo 似乎不支持任何 16x9 模式。在这种情况下,您可以尝试回退到 640x480 之类的常见格式,似乎大多数显示器都支持,而 vbeinfo 也支持。此外,并非 vbeinfo 支持的所有模式都必须由您的显示器支持,您可能需要进行试验。

  • 您可以使用 `sudo hwinfo --framebuffer` 显示与 vbeinfo 相同的信息。 (11认同)
  • 在运行 16.0.4 时,我注意到在内核启动后分辨率不断重置。我不得不添加: GRUB_GFXPAYLOAD="keep" 和 GRUB_CMDLINE_LINUX="nomodeset" 以使其坚持下去。 (3认同)
  • 那个固定的 grub,但要修复 TTY 控制台分辨率,我需要“sudo dpkg-reconfigure console-setup”并为字体选择 16x32 的终端。(注意 nomodeset 导致了更严重的问题。其他详细信息:Ubuntu 18.04、Dell XPS 15、3840 x 2160)。 (3认同)
  • 上面提到:“sudo hwinfo --framebuffer”在启动期间不会显示与 videoinfo 相同的信息。我相信一个显示的是我的 NVIDIA 驱动程序加载后的分辨率,另一个是加载之前的分辨率。 (2认同)

art*_*bot 29

我使用的是 Ubuntu 16.04,而 Grub 的打包版本对我来说有点不同。

vbeinfo命令不存在。

  1. 打开
  2. 在 grub 菜单中按下c以获取 grub 命令行
  3. 类型 videoinfo
    这列出了所有模式 - 它是您需要记下的 <width>x<height>。
  4. 或者,videotest您可以使用一个命令来测试给定的分辨率,例如videotest 1280x1024. 然而,虽然这个测试对我有用,但我无法回到 grub 菜单!所以这不是很有用(除非任何人都可以解释如何逃避测试。)
  5. 完全启动并编辑(sudo)/etc/default/grub但您正在寻找的行现在被称为GRUB_GFXMODE. 所以取消注释并将其设置为您想要的模式。
  6. 运行update-grub并重新启动。

  • 对于 16.04 的我来说,在 grub 命令行输入`videoinfo` 会导致类似“安全启动禁止加载模块...”的错误。然后我在 BIOS 设置中禁用了安全启动,然后在 grub 菜单中出现了更合理的屏幕分辨率,而我无需执行任何其他操作。也许安全启动选项阻止了 grub 对 `GRUB_GFXMODE` 的默认 `auto` 值生效。 (2认同)

小智 8

我在带有 Nvidia 625GT OEM 的 ASUS M51AC 上运行 14.04LTS。我发现除了接受的答案之外,我还需要添加以下行:

GRUB_GFXPAYLOAD="keep"
Run Code Online (Sandbox Code Playgroud)

到 /etc/default/grub.conf


小智 6

对于我在 Ubuntu 17.10 服务器上,它是

GRUB_GFXPAYLOAD_LINUX="keep"
GRUB_GFXMODE="1920x1080x32"
Run Code Online (Sandbox Code Playgroud)

我还必须设置以下内容以防止关机挂起

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
Run Code Online (Sandbox Code Playgroud)