修改 GRUB 文本模式的分辨率
最近将系统升级到了 Ubuntu 15.04 ,它的开机过程由 GRUB2 引导,我很喜欢将开机过程设置成文本模式,这样可以很清楚的看到它开机的时候都在干什么。设置文本模式其实很简单,只需打开 /etc/default/grub
文件,修改 GRUB_CMDLINE_LINUX_DEFAULT
参数为 text
即可:
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="text"
修改完后记得使用 update-grub2
更新:
sudo update-grub2
但是在重启的时候我们会发现文本模式的分辨率非常低(看上去应该是 640x480),字体显得非常大,看起来很不爽。Google 后发现很多人讲到这个问题,但是网上的很多信息已经过时了甚至是错误的,特此记录一下。
其实 GRUB 是支持设置文本分辨率的,也就是所谓的 framebuffer resolution
,这篇文章介绍了如何设置 framebuffer resolution 的技巧。设置方法是在 /etc/default/grub
文件中添加如下两行代码:
GRUB_GFXMODE=1024x768x32
GRUB_GFXPAYLOAD_LINUX=keep
注意的是,显卡需要支持 VBE (VESA BIOS Extensions),设置的分辨率必须在 VBE 允许的范围内。在老版本的 Ubuntu 中可以通过 hwinfo 来查看显卡支持的分辨率,但是 Ubuntu 15.04 中貌似已经废弃掉该工具了。可以通过重启机器,长按 Shift
键进入 GRUB 菜单,而后按 C
键进入 GRUB 命令行,使用 GRUB 自带的 vbeinfo
命令来查看你的显卡所有支持的分辨率。
另外网上有些资料说通过设置 GRUB_GFXMODE
和 GRUB_GFXPAYLOAD
两个参数来修改分辨率,但是经过我的测试似乎没有效果, GRUB_GFXPAYLOAD
这个参数在 Ubuntu 15.04 中也已经弃用了,所以应该使用 GRUB_GFXPAYLOAD_LINUX
参数。
参考
- How do I increase console-mode resolution?
- How to set the resolution in text consoles (troubleshoot when any `vga=…` fails)
- GRUB/Tips and tricks