我正在 VirtualBox 中设置一个测试平台,主机系统是 Ubuntu Lucid Desktop,客户系统是 Ubuntu Lucid Server。
基本服务器安装提供 80x25 控制台,滚动和屏幕更新速度较慢。此问题已通过黑名单修复vga16fb
。之后我获得了 80x25 控制台,屏幕更新和滚动速度很快。
然后我尝试通过编辑/etc/default/grub
、删除splash
和quiet
默认启动参数来禁用启动画面和安静模式GRUB_CMDLINE_LINUX_DEFAULT
。之后我在 80x25 控制台上快速显示了启动消息。
然后我尝试在控制台中设置更高的分辨率。我在/etc/default/grub
文件中用GRUB_GFXMODE
参数提供了所需的图形模式,并将GRUB_GFXPAYLOAD_LINUX
参数设置为keep
使图形模式在控制台中保持不变。之后,我在 grub 菜单中获得了所需的分辨率,在控制台中获得了所需的分辨率,但 grub 启动行选择和登录屏幕之间的启动消息现在不可见(黑屏)。
如何配置 grub 和控制台,以便启动过程的所有部分(grub、启动消息和控制台登录)都可以在所需的分辨率控制台中看到?
fbcon
UPD:一旦我提供模块initrd
:编辑文件/etc/initramfs-tools/modules
并在其中添加一行,然后通过发出fbcon
重建,情况就会好转。当然,所有这些都是以 root 身份进行的。之后我开始看到启动消息,其中第一个是。但是,一些启动输出进入不同的控制台模式(如消息),我看到屏幕在那里切换并再次切换回来。但这仍然比空白屏幕要多得多。initrd
update-initramfs -vu
Console: switching to colour frame buffer device 128x48
fsck
答案1
以无头模式运行 vm-server 并进入控制台可能是一个更好的主意,这样您的客户机就可以管理任何终端宽度。有一个 virtualbox-headless 命令可用于此目的。您可以在客户机中设置 stty,并通过 grub 中的内核命令行将启动消息重定向到相同的 stty,例如:
BOOT_IMAGE=/boot/vmlinuz-3.0.0-10-generic root=/dev/sda1 ro console=ttyS0,38400n8 vt.handoff=7
然后,在主机中,将 /etc/init/tty6.conf 复制到 tty8.conf 并替换以下行
exec /sbin/getty -8 38400 tty6
和:
exec /sbin/getty -8 38400 ttyS0
最后配置镜像以将 serial0 输出到主机上的 /dev/pts。(这适用于 kvm,也适用于 virtualbox)
无论如何,如果您不喜欢这种方法,请安装客户机附加组件。然后您应该能够实现更高的分辨率。滚动缓慢是因为 vga16fb 确实是每像素 16 位颜色信息,而可怜的控制台必须将每个像素转换为主机 X11 的 24 位或 32 位,并且监控像素变化并不是一件容易的事,因此如果您能以某种方式增加颜色深度以匹配您的主机,滚动速度应该会加快。