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 可以通过如下命令安装: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # cd /usr/ports/emulators/virtualbox-ose # make install clean port 配置菜单中的一个实用选项是 ``GuestAdditions`` 程序套件。这些程序提供了在数个客户机操作系统中有用的功能,如鼠标指针整合(允许鼠标在宿主和客户机之间共享,而不需要按下特定的按键组合来切换)以及更快的视频渲染,特别是在 Windows® 客户机当中。在客户机安装完成后,这些附加套件可以在 **设备** 菜单中找到。 VirtualBox™ 初次启动时需要修改几个配置。该 port 会在 **/boot/modules** 安装一个内核模块,它需要被加载到运行中的内核: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # kldload vboxdrv 为了保证该模块始终能在重启后被加载,请在 **/boot/loader.conf** 中添加这样一行: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session vboxdrv_load="YES" 若要使用允许桥接或仅宿主网络的内核模块,请在 **/etc/rc.conf** 中添加这样一行,并重启计算机: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session vboxnet_enable="YES" 在 VirtualBox™ 安装中会新建 ``vboxusers`` 组。所有需要访问 VirtualBox™ 的用户都需要作为成员被添加到这个组中。你可以使用 ``pw`` 命令向其中添加成员: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # pw groupmod vboxusers -m yourusername **/dev/vboxnetctl** 的默认权限是受限的,若要使用桥接网络需对其进行修改: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # chown root:vboxusers /dev/vboxnetctl # chmod 0660 /dev/vboxnetctl 为了使该权限永久有效,请在 **/etc/devfs.conf** 中添加: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session own vboxnetctl root:vboxusers perm vboxnetctl 0660 要启动 VirtualBox™,请在 Xorg 会话中输入: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session % VirtualBox 若要获取关于配置和使用 VirtualBox™ 的更多信息,请参阅\ `官方网站 `__\ 。关于 FreeBSD 特定的信息和疑难解答,请参阅 `FreeBSD 维基上的相关页面 `__\ 。 24.5.2.VirtualBox™ USB 支持 --------------------------- VirtualBox™ 可被配置为 USB 设备直接连接到客户机操作系统。OSE 版本的主控制器仅限模拟 USB 1.1 设备,除非用以支持 USB 2.0 和 3.0 设备的扩展组件开始支持 FreeBSD。 为了使 VirtualBox™ 获知 USB 设备连接到计算机,当前用户需要作为 ``operator`` 组的成员。 .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # pw groupmod operator -m yourusername 然后,将以下内容添加到 **/etc/devfs.rules**\ ,如果文件并不存在请新建该文件: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session [system=10] add path 'usb/*' mode 0660 group operator 添加以下内容到 **/etc/rc.conf** 来加载新建的规则: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session devfs_system_ruleset="system" 然后重启 ``devfs`` 使之生效: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # 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** 添加以下内容来纠正这些设备的权限: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session perm cd* 0660 perm xpt0 0660 perm pass* 0660 然后重启 ``devfs`` 使之生效: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # service devfs restart