我在 Ubuntu (18.04) 主机上的 Virtualbox 中运行 Windows 10。这是一个旧的(9 年,但功能强大且原本是高规格的)个人桌面,被意外用于工作。
目前我主要将它用于轻型数据处理(例如在 OriginLab 中绘制图形),基本 Windows 实用程序的性能在 2 个线程(8 个)和 4GB RAM(16 个)的情况下几乎无法接受。主机是我的主要操作系统,可以使用 6 核/12GB,但如果我将大部分资源提供给 VM,肯定会受到影响。
我预计需要在 VM(Autodesk Inventor 3D 建模)中运行更重要的分析和要求更高的软件,因此希望能够提高会话的性能。我可以很容易地重新启动虚拟机以期待这一点。所有数据都存储在主机和所有来宾操作系统可访问的文件夹中(我还有一个旧的 Ubuntu 来宾来运行专有的并且不再受支持的东西)。在简短的测试中,Windows 似乎能够处理在不同硬件配给上的启动,而不会出现问题。
由于它是个人机器,因此不可能进行重大的硬件升级 - 所以没有新的 CPU/主板。RAM 升级可能是可能的,但所有插槽都已满(4x4GB),所以约 50 英镑将带我到 24GB 或约 100 英镑将主板最大容量为 32GB,我可能受 CPU 限制。
能够在低规格和高规格操作之间切换 Windows VM 的最佳选择是什么? 我考虑过:
- 克隆虚拟机,设置一个克隆高规格和一个克隆低规格,并选择启动哪个
- 缺点 - 磁盘空间,每个 Windows 更新都需要运行两次
- 在启动前更改同一 VM 的设置
- 缺点:每次都很麻烦。如果我忘记关闭访客设置,主机将大幅减速。
- 这可以脚本化吗?
- 我错过了另一个选择吗?
由于最近对 Windows 和我使用它的软件进行了一组更新,我在以 Ubuntu 20.04 作为主机的较新机器上遇到了同样的问题
通常情况下,一旦我发现了魔法命令,解决方案就很简单了。
VirtualBox 虚拟机可以使用 ; 修改和启动
vboxmanage
;设置存储在可以(但不应该)直接编辑的 xml 文件中。考虑到这一点,解决方案是一对 shell 脚本:Win10Hi.sh:
(12 GiB 导致引导中止,可能是因为主机不能投入那么多)
和 Win10Lo.sh:
关于 CPU 的数量需要稍微小心或试验 - 手册说它应该是不包括超线程的物理内核的数量,但
vboxmanage
配置文件中设置的数字反映了 GUI 中的数量,并且在可用内核的数量中包括超线程.