在Ubuntu Server 13.04中更改终端分辨率的正确方法是什么?

我在VMware虚拟机中运行Ubuntu Server 13.04,只使用命令行模式(即无图形界面)。它默认的屏幕分辨率是640x480,但我想将其增加到800x600或1024x768。
我已经更改了/etc/default/grub文件中的一些行。
GRUB_CMDLINE_LINUX_DEFAULT=""  
GRUB_CMDLINE_LINUX="consoleblank=0"  
GRUB_GFXMODE=800x600  

我尝试了许多在网上看到的建议,包括上面三行的变体,但很多都只是导致重新启动时出现空白屏幕,不得不强制关闭虚拟机...这时我就会备份一个VMware快照。
运行sudo hwinfo --framebuffer给了我很多信息:
    Model: "Vmware virtual machine"  
    Revision: "2.0"  
    Memory Size: 64 MB  
Lines for 800x600 include:  
    Mode 0x0303: 800x600 (+800), 8 bits  
    Mode 0x0314: 800x600 (+1600), 16 bits  
    Mode 0x0324: 800x600 (+800), 8 bits  
    Mode 0x0332: 800x600 (+1600), 16 bits  
    Mode 0x0340: 800x600 (+3200), 24 bits  

我排除了其他所有分辨率,因为我目前只对800x600感兴趣。显然Ubuntu Server 13.04使用grub2,那么我该如何实现这个?


请查看此答案:http://askubuntu.com/a/609523/8822 - mivk
4个回答

我解决了...而且我所要做的只是编辑/etc/default/grub文件,如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="splash vga=789"

我执行了sudo update-grubsudo reboot,结果进入了一个更大尺寸的控制台模式... 正是我想要的。

我处于文本模式吗?这在文本模式下工作吗? - CMCDragonkai
@CMCDragonkai,这适用于没有安装图形界面的Ubuntu服务器。它只能通过命令行界面操作(正如发布者所述)。 - Erik
3你从哪里得到了789这个值?我以为它可能是问题中众数的十进制表示,但是789 == 0x315,而这个值并不在你提供的列表中。 - Tyler Crompton

我曾经遇到同样的问题,并对你提供的解决方案进行了一点小改动,结果成功解决了。但是,在处理控制台显示时,还有一些限制需要记住:
  1. VGA 模式的分辨率最大不能超过 800x600,所以如果你想要 1024x768 的分辨率,应该使用 XVGA 而不是简单的 VGA。
  2. 你可以应用到控制台显示的分辨率取决于你的图形卡能力,也就是说,如果你的卡最大只支持 800x600 的分辨率,那么你无法强制显示 1024x768。
最终,我找到了适合我的解决方案:
GRUB_CMDLINE_LINUX_DEFAULT="splash xvga=1024x768x24" 
GRUB_GFXMODE=1024x768x24

x24”是可选的,因为它没有任何变化,此外,您只需使用第二行即可正常工作。
祝您有美好的一天。

在Virtualbox中尝试了一下,现在无法启动/显示任何内容。 - Kiril
@Kiril:我也一样。不要在虚拟机中尝试这个。 - Alex

阅读如何增加控制台模式的分辨率?第一个答案就是你要找的。需要调整grub参数。
编辑:我给你提供的链接中的答案似乎有遗漏。你还需要在grub.conf中添加以下行:
GRUB_GFXPAYLOAD_LINUX=keep

没有这个设置,系统在启动后会降低分辨率到默认值,导致登录界面分辨率过低。
另外请记住(我不记得在哪里看到的),"vga="参数已经在grub中被弃用,所以除非你想冒着在将来更新grub时再次遇到这个问题的风险,我建议你使用这种方法。

我在发布之前看到了那个页面/解决方案并尝试了它,但它不能永久地改变它。在编辑/etc/default/grub和/etc/grub.d/00_header后,运行'sudo update-grub2'和'sudo reboot',控制台在启动过程中短暂地从640x480切换到800x600,持续1-2秒,但总是在到达登录提示时返回到640x480。在上述两个文件中,我尝试了'800x600x8'、'800x600x16'和'800x600x24',结果都一样。 - David Allie
我还尝试了'1024x768x8','1024x768x16'和'1024x768x24',但结果都一样。运行'sudo hwinfo --framebuffer'显示这些模式也是可用的,但我仍然被困在640x480分辨率上。 - David Allie
1这个答案应该放在其他答案之上,因为“keep”选项是使所有事情正常运行的必需参数。 - Zac

如果你没有成功(或者如果你决定不值得麻烦),可以使用更简单的方法通过ssh访问你的虚拟机 - 在终端窗口中没有显示尺寸的限制 :-)

ssh username@ip-address会打开一个会话。


谢谢你的建议,但是这个Ubuntu Server 13.04是我本地Mac Pro上的一个VMware虚拟机。我并不打算将其用作生产服务器,而是作为工作中其他几个Ubuntu Server虚拟机的测试平台...而且由于我只在Mac上工作时才使用它,通过ssh启动虚拟机然后通过ssh进行操作似乎不太实际。如果它是一个全天候运行的生产服务器,那么ssh可能是一个不错的选择。我可以忍受640x480的分辨率---我更希望有更高的分辨率,并且我想学习如何解决这个问题而不依赖ssh。 - David Allie
1我一直在假设这样的情景,这是我一直在做的事情,ssh更加方便 - 试试看吧 :-) - guntbert
1SSH会让很多事情变得更容易。比如复制粘贴... - Germar
我对ssh非常熟悉和舒适。我只是希望学习如何正确设置控制台大小,以便在我不想使用ssh时使用。 - David Allie
即使在本地,这也很棒。剪切和粘贴 - 是的!而且甚至摆脱了随机更新黑屏之类的“vga=…”已被弃用的问题。 - user643722
3好主意...除了我之所以要访问控制台的唯一原因是因为我破坏了网络连接,无法通过SSH进行访问... - Auspex