VirtualBox

Windows 主机

使用 kmkpacking 目标来创建 out\win.(x86|amd64)\(debug|release)\bin\VirtualBox-*.msi。使用此 MSI 安装包进行正常安装。如果安装因任何原因失败,请使用 MSI 安装程序进行日志记录

msiexec /i VirtualBox-xxxxx.msi /l* install.log

在开发过程中,直接从输出目录运行可能更有用。为此,您需要加载驱动程序。(如果仅加载支持驱动程序,请用 load.cmd 替换 loadall.cmd。)在 Windows 主机上使用以下命令:

loadall.cmd

对于卸载

comregister.cmd -u
loadall.cmd -u

每当对主 API 或驱动程序进行更改时,您都需要重复注册和驱动程序加载步骤。

更改文件时,请务必先查看任务管理器,确认 VBoxSVC 和/或 VBoxSDS 服务器是否仍在运行。如果 VBox 未正确终止,可能会发生这种情况。
一个更快的替代方法是,从 http://www.sysinternals.com/Utilities/PsKill.html 获取 pskill,并在不确定 VBoxSVC 和 VBoxSDS 是否正在运行时直接将其终止

pskill VBoxSVC
pskill VBoxSDS

如果您不想调试断言,可以使用以下方式启动 VirtualBox:

set VBOX_ASSERT=none
set VBOX_LOG=...
set VBOX_LOG_FLAGS=time thread buffered

Linux 主机

如果您希望以最少的麻烦和学习曲线开始,请从构建文件夹执行 ./loadall.sh。这将执行以下操作:

  • 将使用当前本地源代码的内核模块放到位,以便它们在启动时自动加载(仅适用于当前内核)。
  • 使用 udev 设置自动设备节点创建,包括所有权和权限。
  • 设置 USB 直通。要使用此功能,您需要是 vboxusers 组的成员(加入后请注销并重新登录以使其生效)。

您可以重复此过程来更新最小安装,或通过执行 ./loadall.sh -u 再次清除它。

通过从构建目录执行 ./load.sh,可以在不进行任何形式安装的情况下启动最小的本地构建。这会加载主支持驱动程序,仅此而已。在模块源代码更改或更新后,您可以重复此操作。该模块可以通过 ./load.sh -u 再次移除。在这种情况下,您需要自行处理 udev 规则和/或设备节点。

SELinux 主机(例如 Oracle Linux、Fedora):如果您看到类似以下的消息,可能需要禁用 SELinux:nsNativeComponentLoader: SelfRegisterDll(VBoxC.so) Load FAILED with error: /root/src/vbox/out/linux.amd64/debug/bin/components/../VBoxVMM.so: cannot restore segment prot after reloc: Permission denied

通过执行以下命令在运行的系统上临时禁用 SELinux:

/usr/sbin/setenforce 0

或者通过编辑 /etc/selinux/config 文件并将 "enforcing" 更改为 "disabled" 来永久禁用它。

macOS 主机

要启动本地构建,请加载内核扩展:

cd VBox/out/darwin.x86/release/dist
sudo ./load.sh

如果在运行上述脚本时遇到代码签名错误,请执行以下命令并重新启动机器。

sudo nvram boot-args=kext-dev-mode=1

运行 VirtualBox.app/Contents/MacOS 中的可执行文件照常进行。

Solaris 主机

要在不使用安装包的情况下启动本地构建,步骤如下:

将 VBI 接口(VirtualBox 3.1 及更高版本不需要)从源代码树复制到适当的位置。同时复制 32 位和 64 位版本也无妨。

cp src/VBox/Runtime/r0drv/solaris/vbi/64/vbi /platform/i86pc/kernel/misc/amd64/vbi
cp src/VBox/Runtime/r0drv/solaris/vbi/32/vbi /platform/i86pc/kernel/misc/vbi

接下来,复制并安装相应的 vboxdrv:

cp out/solaris.amd64/release/bin/vboxdrv /platform/i86pc/kernel/drv/amd64/vboxdrv
cp out/solaris.x86/release/bin/vboxdrv /platform/i86pc/kernel/drv/vboxdrv

复制驱动程序配置文件(此处无 64/32 位差异,配置文件存放在 32 位位置):

cp src/VBox/HostDrivers/Support/solaris/vboxdrv.conf /platform/i86pc/kernel/drv

如果您之前安装过该模块,请在尝试加载新模块之前先将其移除:

su
rem_drv vboxdrv

加载模块:

add_drv -m'* 0666 root sys' vboxdrv

创建 devlink:

ln -s /devices/pseudo/vboxdrv@0:vboxdrv /dev/vboxdrv

使用以下命令检查模块是否为正确的修订版本:

modinfo | grep vbox
237 fffffffff7a97748   2900  75   1  vboxflt (VirtualBox NetBow 3.2.1r61839)
238 fffffffff8771000  27e10 107   1  vboxdrv (VirtualBox HostDrv 3.2.1r61839)
...
上次修改 7 年前 上次修改于 2018/04/11 02:24:26 PM
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私 / 请勿出售我的信息 使用条款 商标政策 自动化访问礼仪