本文摘自FreeBSD手册
在过去的几年中 FreeBSD 并没有任何可用的并被官方支持的虚拟化解决方案。 一些用户曾时使用过利用 Linux 二进制兼容层运行的 VMware 陈旧并多半已过时的版本 (比如 emulators/vmware3)。 在 FreeBSD 7.2 发布不久, Sun 开源版本 (Open Source Edition OSE) 的 VirtualBox 作为一个 FreeBSD 原生的程序出现在了 Ports Collection 中。
VirtualBox 是一个开发非常活跃, 完全虚拟化的软件, 并且可在大部份的操作系统上使用, 包括 Windows, Mac OS, Linux 和 FreeBSD。同样也能把 Windows 或 UNIX 作为客户系统运行。 它有一个开源和一个私有两种版本。 从用户的角度来看, OSE 版本最主要的限制也许是缺乏 USB 的支持。 其他更多的差异可以通过链接 http://www.virtualbox.org/wiki/Editions 查看 “Editions” 页面。 目前, FreeBSD 上只有 OSE 版本可用。
安装 VirtualBox
VirtualBox 已作为一个 FreeBSD port 提供, 位于 emulators/virtualbox-ose, 可使用如下的命令安装:
# cd /usr/ports/emulators/virtualbox-ose
# make install clean
在配置对话框中的一个有用的选项是 GusetAdditions 程序套件。 这些在客户操作系统中提供了一些有用的特性, 比如集成鼠标指针 (允许在宿主和客户系统间使用鼠标, 而不用事先按下某个特定的快捷键来切换) 和更快的视频渲染, 特别是在 Windows 客户系统中。 在安装了客户操作系统之后, 客户附加软件可在 Devices 菜单中找到。
在第一次运行 VirtualBox 之前还需要做一些配置上的修改。port 会安装一个内核模块至 /boot/modules 目录, 此模块需要事先加载:
# kldload vboxdrv
可以在 /boot/loader.conf 中加入以下的配置使此模块在机器重启之后能自动加载:
vboxdrv_load="YES"
在 3.1.2 之前版本的 VirtualBox 需要挂接 proc 文件系统。 在新版本中不再有此要求, 因为它们使用了由 sysctl(3) 库提供的功能。
当使用旧版本的 port 时, 需要使用下面的步骤来挂载 proc:
# mount -t procfs proc /proc
为了使配置能在重启后始终生效, 需要在 /etc/fstab 中加入以下这行:
proc /proc procfs rw 0 0
注意: 如果在运行 VirtualBox 的终端中发现了类似如下的错误消息:
VirtualBox: supR3HardenedExecDir: couldn’t read "", errno=2 cchLink=-1
此故障可能是由 proc 文件系统导致的。 请使用 mount 命令检查文件系统是否正确挂载。
在安装 VirtualBox 时会自动创建 vboxusers 组。 所有需要使用 VirtualBox 的用户必须被添加为此组中的成员。 可以使用 pw 命令添加新的成员:
# pw groupmod vboxusers -m yourusername
运行 VirtualBox, 可以通过选择你当前图形环境中的 Sun VirtualBox, 也可以在虚拟终端中键入以下的命令:
% VirtualBox
获得更多有关配置和使用 VirtualBox 的信息, 请访问官方网站 http://www.virtualbox.org。 鉴于 FreeBSD port 非常新, 并仍处于开发状态。请查看 FreeBSD wiki 上的相关页面 http://wiki.FreeBSD.org/VirtualBox 以获取最新的信息和故障排查细则。