我正在尝试在 VirtualBox 中运行 Windows 8。我的笔记本电脑的显示屏正好是 1366x768。如果分辨率低于 1366x768,Windows 8 会禁用其部分功能,因此我需要全屏运行客户操作系统。
问题是,VirtualBox 拒绝以 1366x768 的分辨率运行客户机。当 VirtualBox 处于“全屏”模式时,客户机的分辨率只有 1360x768——窄了 6 个像素。因此,显示屏的左右两侧各有一个 3 个像素的黑条。
此用户遇到了同样的问题,但可接受的答案是“安装 Guest Additions”,我已经完成了;这使我达到了 1360,但没有达到 1366。
根据VirtualBox 票务追踪,曾经有一个错误,即客人的屏幕宽度会向下舍入到最接近的 8 的倍数,但他们声称已在版本 3.2.12 中修复了该错误。我正在使用版本 4.1.18,并且看到了他们声称已修复的相同问题,所以要么他们又搞砸了,要么他们说修复了它,要么我的问题完全是其他问题。
这个答案建议为虚拟机分配 128MB 的视频内存,并声称之后获得 1366x768 没有任何问题。当我创建虚拟机时,其显示内存已默认为 128 MB。我尝试将其增加到 256MB,但没有效果:客户机仍然太窄了六个像素。
我的主机操作系统是 Windows 7 64 位,并且正在运行 VirtualBox 4.1.18。
如何让 VirtualBox 以我的显示器原始分辨率 1366x768 全屏运行我的客户操作系统?
答案1
在虚拟机运行时,您还可以使用以下命令告诉客户操作系统更改分辨率:
VBoxManage controlvm "Name of VM" setvideomodehint 1366 768 32
最后的32表示显示色彩深度。
答案2
经过整个周末的努力,我终于找到了罪魁祸首:VirtualBox 的 3D 加速。
如果您进入虚拟机的“设置”>“显示”,并取消选中“启用 3D 加速”,则客户机将成功以 1366x768 运行。
答案3
我使用以下命令在 Fedora 22 KDE 上解决了同样的问题:
$ VBoxManage setextradata global GUI/MaxGuestResolution any
$ VBoxManage setextradata "Win 10" "CustomVideoMode1" "1366x786x32"
请注意,你的 VirtualBox 窗口应该关闭。
答案4
确保您的硬件支持您要使用的任何分辨率。
在 VirtualBox 中启动 Linux 客户机并按下cGRUB 菜单(在 Debian 中为蓝屏),然后在grub>
提示符下使用vbeinfo
命令检查硬件支持的分辨率。其格式为1366x768x32
。
按Esc退出grub>
提示并继续。然后:
- 登录系统
root
vim /etc/default/grub
编辑,使用支持的模式之一:
GRUB_GFXMODE=1366x768x24 GRUB_GFXPAYLOAD_LINUX=keep
更新您的 Grub 配置(Debian 中的命令是
update-grub
,OpenSUSE 中的命令是grub2-mkconfig -o /boot/grub2/grub.cfg
)- 登出
在 Windows(或任何主机操作系统)中运行此命令:
C:\>...\vboxmanage setextradata "your_guest_os_name" "CustomVideoMode1" "1366x768x32"
重新启动客户操作系统