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