24.5.在 FreeBSD 上安装 VirtualBox™

VirtualBox™ 是一个正在活跃开发的,完备的虚拟化软件。可运行于大多操作系统,包括 Windows®,macOS®,Linux® 和 FreeBSD。它也同样能够运行 Windows® 或者类 UNIX® 客户机系统。该软件作为开源软件发行,但是在单独的扩展包中提供了闭源组件。这些组件包括对 USB 2.0 设备的支持。更多的信息可以在 VirtualBox™ 维基下载页中找到。截至目前为止,这些扩展尚不支持 FreeBSD。

24.5.1.安装 VirtualBox™

VirtualBox™ 在 FreeBSD 软件包和 port 名为 emulators/virtualbox-ose。其 port 可以通过如下命令安装:

# cd /usr/ports/emulators/virtualbox-ose
# make install clean

port 配置菜单中的一个实用选项是 GuestAdditions 程序套件。这些程序提供了在数个客户机操作系统中有用的功能,如鼠标指针整合(允许鼠标在宿主和客户机之间共享,而不需要按下特定的按键组合来切换)以及更快的视频渲染,特别是在 Windows® 客户机当中。在客户机安装完成后,这些附加套件可以在 设备 菜单中找到。

VirtualBox™ 初次启动时需要修改几个配置。该 port 会在 /boot/modules 安装一个内核模块,它需要被加载到运行中的内核:

# kldload vboxdrv

为了保证该模块始终能在重启后被加载,请在 /boot/loader.conf 中添加这样一行:

vboxdrv_load="YES"

若要使用允许桥接或仅宿主网络的内核模块,请在 /etc/rc.conf 中添加这样一行,并重启计算机:

vboxnet_enable="YES"

在 VirtualBox™ 安装中会新建 vboxusers 组。所有需要访问 VirtualBox™ 的用户都需要作为成员被添加到这个组中。你可以使用 pw 命令向其中添加成员:

# pw groupmod vboxusers -m yourusername

/dev/vboxnetctl 的默认权限是受限的,若要使用桥接网络需对其进行修改:

# chown root:vboxusers /dev/vboxnetctl
# chmod 0660 /dev/vboxnetctl

为了使该权限永久有效,请在 /etc/devfs.conf 中添加:

own     vboxnetctl root:vboxusers
perm    vboxnetctl 0660

要启动 VirtualBox™,请在 Xorg 会话中输入:

% VirtualBox

若要获取关于配置和使用 VirtualBox™ 的更多信息,请参阅官方网站。关于 FreeBSD 特定的信息和疑难解答,请参阅 FreeBSD 维基上的相关页面

24.5.2.VirtualBox™ USB 支持

VirtualBox™ 可被配置为 USB 设备直接连接到客户机操作系统。OSE 版本的主控制器仅限模拟 USB 1.1 设备,除非用以支持 USB 2.0 和 3.0 设备的扩展组件开始支持 FreeBSD。

为了使 VirtualBox™ 获知 USB 设备连接到计算机,当前用户需要作为 operator 组的成员。

# pw groupmod operator -m yourusername

然后,将以下内容添加到 /etc/devfs.rules,如果文件并不存在请新建该文件:

[system=10]
add path 'usb/*' mode 0660 group operator

添加以下内容到 /etc/rc.conf 来加载新建的规则:

devfs_system_ruleset="system"

然后重启 devfs 使之生效:

# service devfs restart

重启登录会话和 VirtualBox™ 来使这些更改生效,还可按需要创建 USB 过滤规则。

24.5.3.访问 VirtualBox™ 宿主的 DVD/CD

从客户机访问宿主的 DVD/CD 驱动器是通过共享物理光驱来实现的。在 VirtualBox™ 中,从虚拟机设置中的存储视窗进行设置。如果需要,请先创建一个空白的 IDECD/DVD 设备,然后在虚拟 CD/DVD 驱动器的弹出菜单中选择宿主光驱。这里会出现穿透模式复选框,这个模式可以让客户机直接访问宿主光驱硬件。例如,音频 CD 和刻录软件只有在启用该模式时能够正常工作。

为了使用户能够使用 VirtualBox™ DVD/CD 功能,用户需要有访问 /dev/xpt0/dev/cdN/dev/passN 的权限。通常来说,将用户加入 operator 组即可。请向 /etc/devfs.conf 添加以下内容来纠正这些设备的权限:

perm cd* 0660
perm xpt0 0660
perm pass* 0660

然后重启 devfs 使之生效:

# service devfs restart