加快 Virtualbox 启动时间

加快 Virtualbox 启动时间

我正在寻找加快 VirtualBox VM 启动时间的技巧和窍门。“启动时间”是指启动 VM 和出现登录窗口/提示之间的时间间隔,因此它涵盖 VirtualBox 内部内容、引导加载过程和操作系统启动。

背景是,我正在设置一个基于 Vagrant 的基础设施用于测试。它将启动数十台虚拟机,这就是为什么我想尽可能降低启动成本。目前的重点是 Linux(Debian),但我也对 Windows 和 MacOS 的建议感兴趣。我可以完全控制使用的 Vagrant 基础盒和 VirtualBox 设置。

我对 BIOS 和 EFI 都很感兴趣。我也很乐意听听关于软件包的建议(出于内存占用的原因,我选择了dropbearudhcpc而不是更标准的openssh-serverisc-dhcp-client,但从性能角度来看,它们可能是糟糕的选择)。

相关问题:最小化无头 Ubuntu 的启动时间

一些数据:

  • 目前,我的 Debian VM 只需要 8 秒就能到达登录控制台
  • dmesg告诉我网络在 4 秒后就绪(这对 很重要vagrant ssh),我估计还需要 2 秒钟才能真正得到提示,因此剩下 2 秒钟用于 VirtualBox 启动选择菜单和引导加载程序(GRUB)过程

我已经使用的技巧示例:

  • 我开始使用 EFI,但后来又恢复到 BIOS,因为我找不到控制 EFI 中启动菜单显示时间的方法(请参阅我的评论在另一个问题中
  • vboxmanage modifyvm vagrant_base --bioslogodisplaytime 1通过将 BIOS 菜单显示时间设置为 1 毫秒来节省几秒钟(0将其设置为默认值,大约 3 秒)
  • vboxmanage storagectl vagrant_base --name "Floppy Controller" --add floppy通过避免在寻找软盘控制器时出现内核超时(“floppy0:未找到软盘控制器”)节省了 3 秒(!)(将模块列入黑名单floppy可能是一种替代方案)
  • --portcount 1为硬盘控制器设置,以避免内核枚举默认值 30
  • 如果仅为虚拟机分配一个 CPU,请禁用 IO-APIC

我现在保留 DHCP,但可能会切换到静态 IP 配置,因为这对于启动时间来说成本很高,尽管一旦启动多个虚拟机,它可能会成为网络问题。

当然,当前时间在很大程度上取决于我使用的硬件,而硬件还不是生产环境。我没有对虚拟机进行压力测试,因此增加 CPU 数量或使用高速存储(已经是 SSD)不是我现在想要考虑的事情。

相关内容