25 December 2016

VirtualBox的视图设置里有种模式是“自动缩放虚拟机显示器”(Auto-resize Guest Display)。 它的作用是让你的虚拟机显示分辨率随着其所在宿主窗口的缩放而自动调整。这是我最喜欢用的模式。 不过这次更新了虚拟机的 Windows 10 操作系统后,却发现这功能不正常了。

首先我试了重新安装虚拟机加载项。对VirtualBox来说,虚拟机加载项(Guest Additions)是提供多项高级功能(例如共享文件夹、双向剪贴板)所必须的。 不过重新安装之后,仍然无法自动缩放。去Google搜索发现,原来是“VirtualBox Guest Additions Tray Application”没有运行导致的。

在下图中,任务管理器里选中的行是虚拟机加载项的服务程序;其下面一行就是所需的Tray Application。 既然是托盘程序,图中也显示任务栏中确实有个相应的图标(该图标无法进行任何交互)。只有它运行起来,自动缩放的功能才能正常工作。

其实我重装虚拟机加载项后还特意看了一下进程列表,确定看到了“VirtualBox Guest Additions Service”才放心。 但万万没想到,只有这个服务还是不够。托盘程序看上去无足轻重,却是不可或缺。

更囧的是,那个托盘程序竟然在启动项里(可见它需要随系统启动),但却处于禁用状态(怎么会这样!反正不是我干的)。 我按照网上的解决方法,把这个启动项启用,然后重启后就一切正常了。世间万物有时候真是莫名其妙。

虽然没有确认,但我估计共享文件夹和剪切板也依赖这个托盘程序,它应该是整个虚拟机加载项的必要组成部分。 以后再有什么功能异常,除了重装加载项,还要检查一下任务栏里有没有这个图标,以确认托盘程序是否运行。

VirtualBox是个好东西,不过有时也挺不省心。再比如,要想使虚拟机支持USB 3.0,还要额外下载安装一个扩展包……