FreeBSD Handbook
Prev | Chapter 23 Virtualization | Next

# 23.2 FreeBSD as a Guest OS

## 23.2.1 Parallels on Mac OS® X

Parallels Desktop for Mac® is a commercial software product available for Intel® based Apple® Mac computers running Mac OS® 10.4.6 or higher. FreeBSD is a fully supported guest operating system. Once Parallels has been installed on Mac OS X, the user must configure a virtual machine and then install the desired guest operating system.

### 23.2.1.1 Installing FreeBSD on Parallels/Mac OS X

The first step in installing FreeBSD on Parallels is to create a new virtual machine for installing FreeBSD. Select FreeBSD as the Guest OS Type when prompted:

Choose a reasonable amount of disk and memory depending on the plans for this virtual FreeBSD instance. 4GB of disk space and 512MB of RAM work well for most uses of FreeBSD under Parallels:

Select the type of networking and a network interface:

Save and finish the configuration:

After the FreeBSD virtual machine has been created, FreeBSD can be installed on it. This is best done with an official FreeBSD CD/DVD or with an ISO image downloaded from an official FTP site. Copy the appropriate ISO image to the local Mac filesystem or insert a CD/DVD in the Mac's CD drive. Click on the disc icon in the bottom right corner of the FreeBSD Parallels window. This will bring up a window that can be used to associate the CDROM drive in the virtual machine with the ISO file on disk or with the real CDROM drive.

Once this association with the CDROM source has been made, reboot the FreeBSD virtual machine by clicking the reboot icon. Parallels will reboot with a special BIOS that first checks if there is a CDROM.

In this case it will find the FreeBSD installation media and begin a normal FreeBSD installation. Perform the installation, but do not attempt to configure Xorg at this time.

When the installation is finished, reboot into the newly installed FreeBSD virtual machine.

### 23.2.1.2 Configuring FreeBSD on Parallels

After FreeBSD has been successfully installed on Mac OS X with Parallels, there are a number of configuration steps that can be taken to optimize the system for virtualized operation.

1. Set Boot Loader Variables

   The most important step is to reduce the `kern.hz` tunable to reduce the CPU utilization of FreeBSD under the Parallels environment. This is accomplished by adding the following line to `/boot/loader.conf`:

       kern.hz=100

   Without this setting, an idle FreeBSD Parallels guest will use roughly 15% of the CPU of a single processor iMac®. After this change the usage will be closer to 5%.

2. Create a New Kernel Configuration File

   All of the SCSI, FireWire, and USB device drivers can be removed from a custom kernel configuration file. Parallels provides a virtual network adapter used by the ed(4) driver, so all network devices except for ed(4) and miibus(4) can be removed from the kernel.

3. Configure Networking

   The most basic networking setup uses DHCP to connect the virtual machine to the same local area network as the host Mac. This can be accomplished by adding `ifconfig_ed0="DHCP"` to `/etc/rc.conf`. More advanced networking setups are described in .

## 23.2.2 Virtual PC on Windows®

Virtual PC for Windows® is a Microsoft® software product available for free download. See this website for the system requirements. Once Virtual PC has been installed on Microsoft Windows, the user can configure a virtual machine and then install the desired guest operating system.

### 23.2.2.1 Installing FreeBSD on Virtual PC

The first step in installing FreeBSD on Virtual PC is to create a new virtual machine for installing FreeBSD. Select Create a virtual machine when prompted:

Select Other as the Operating system when prompted:

Then, choose a reasonable amount of disk and memory depending on the plans for this virtual FreeBSD instance. 4GB of disk space and 512MB of RAM work well for most uses of FreeBSD under Virtual PC:

Save and finish the configuration:

Select the FreeBSD virtual machine and click Settings, then set the type of networking and a network interface:

After the FreeBSD virtual machine has been created, FreeBSD can be installed on it. This is best done with an official FreeBSD CD/DVD or with an ISO image downloaded from an official FTP site. Copy the appropriate ISO image to the local Windows filesystem or insert a CD/DVD in the CD drive, then double click on the FreeBSD virtual machine to boot. Then, click CD and choose Capture ISO Image... on the Virtual PC window. This will bring up a window where the CDROM drive in the virtual machine can be associated with an ISO file on disk or with the real CDROM drive.

Once this association with the CDROM source has been made, reboot the FreeBSD virtual machine by clicking Action and Reset. Virtual PC will reboot with a special BIOS that first checks for a CDROM.

In this case it will find the FreeBSD installation media and begin a normal FreeBSD installation. Continue with the installation, but do not attempt to configure Xorg at this time.

When the installation is finished, remember to eject the CD/DVD or release the ISO image. Finally, reboot into the newly installed FreeBSD virtual machine.

### 23.2.2.2 Configuring FreeBSD on Virtual PC

After FreeBSD has been successfully installed on Microsoft Windows with Virtual PC , there are a number of configuration steps that can be taken to optimize the system for virtualized operation.

1. Set Boot Loader Variables

   The most important step is to reduce the `kern.hz` tunable to reduce the CPU utilization of FreeBSD under the Virtual PC environment. This is accomplished by adding the following line to `/boot/loader.conf`:

       kern.hz=100

   Without this setting, an idle FreeBSD Virtual PC guest OS will use roughly 40% of the CPU of a single processor computer. After this change, the usage will be closer to 3%.

2. Create a New Kernel Configuration File

   All of the SCSI, FireWire, and USB device drivers can be removed from a custom kernel configuration file. Virtual PC provides a virtual network adapter used by the de(4) driver, so all network devices except for de(4) and miibus(4) can be removed from the kernel.

3. Configure Networking

   The most basic networking setup uses DHCP to connect the virtual machine to the same local area network as the Microsoft Windows host. This can be accomplished by adding `ifconfig_de0="DHCP"` to `/etc/rc.conf`. More advanced networking setups are described in .

## 23.2.3 VMware Fusion on Mac OS

VMware Fusion for Mac is a commercial software product available for Intel based Apple Mac computers running Mac OS 10.4.9 or higher. FreeBSD is a fully supported guest operating system. Once VMware Fusion has been installed on Mac OS X, the user can configure a virtual machine and then install the desired guest operating system.

### 23.2.3.1 Installing FreeBSD on VMware Fusion

The first step is to start VMware Fusion which will load the Virtual Machine Library. Click New to create the virtual machine:

This will load the New Virtual Machine Assistant. Click Continue to proceed:

Select Other as the Operating System and either FreeBSD or FreeBSD 64-bit, as the Version when prompted:

Choose the name of the virtual machine and the directory where it should be saved:

Choose the size of the Virtual Hard Disk for the virtual machine:

Choose the method to install the virtual machine, either from an ISO image or from a CD/DVD:

Click Finish and the virtual machine will boot:

Install FreeBSD as usual:

Once the install is complete, the settings of the virtual machine can be modified, such as memory usage:

> Note: The System Hardware settings of the virtual machine cannot be modified while the virtual machine is running.

The number of CPUs the virtual machine will have access to:

The status of the CDROM device. Normally the CD/DVD/ISO is disconnected from the virtual machine when it is no longer needed.

The last thing to change is how the virtual machine will connect to the network. To allow connections to the virtual machine from other machines besides the host, choose Connect directly to the physical network (Bridged). Otherwise, Share the host's internet connection (NAT) is preferred so that the virtual machine can have access to the Internet, but the network cannot access the virtual machine.

After modifying the settings, boot the newly installed FreeBSD virtual machine.

### 23.2.3.2 Configuring FreeBSD on VMware Fusion

After FreeBSD has been successfully installed on Mac OS X with VMware Fusion, there are a number of configuration steps that can be taken to optimize the system for virtualized operation.

1. Set Boot Loader Variables

   The most important step is to reduce the `kern.hz` tunable to reduce the CPU utilization of FreeBSD under the VMware Fusion environment. This is accomplished by adding the following line to `/boot/loader.conf`:

       kern.hz=100

   Without this setting, an idle FreeBSD VMware Fusion guest will use roughly 15% of the CPU of a single processor iMac. After this change, the usage will be closer to 5%.

2. Create a New Kernel Configuration File

   All of the FireWire, and USB device drivers can be removed from a custom kernel configuration file. VMware Fusion provides a virtual network adapter used by the em(4) driver, so all network devices except for em(4) can be removed from the kernel.

3. Configure Networking

   The most basic networking setup uses DHCP to connect the virtual machine to the same local area network as the host Mac. This can be accomplished by adding `ifconfig_em0="DHCP"` to `/etc/rc.conf`. More advanced networking setups are described in .

## 23.2.4 VirtualBox™ Guest Additions on a FreeBSD Guest

The VirtualBox™ guest additions provide support for:

- Clipboard sharing.

- Mouse pointer integration.

- Host time synchronization.

- Window scaling.

- Seamless mode.

> Note: The following commands are run in the FreeBSD guest.

First, install the `emulators/virtualbox-ose-additions` package or port in the FreeBSD guest. This will install the port:

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

Add these lines to `/etc/rc.conf`:

    vboxguest_enable="YES"
    vboxservice_enable="YES"

If ntpd(8) or ntpdate(8) is used, host time synchronization should be disabled:

    vboxservice_flags="--disable-timesync"

The `vboxvideo` driver should be automatically recognized by `Xorg -configure`. If not, modify `/etc/X11/xorg.conf` for the VirtualBox video card:

    Section "Device"
    	### Available Driver options are:-
    	### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    	### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
    	### [arg]: arg optional
    	Identifier "Card0"
    	Driver "vboxvideo"
    	VendorName "InnoTek Systemberatung GmbH"
    	BoardName "VirtualBox Graphics Adapter"
    	BusID "PCI:0:2:0"
    EndSection

To use the `vboxmouse` driver, adjust the mouse section in `/etc/X11/xorg.conf`:

    Section "InputDevice"
    	Identifier "Mouse0"
    	Driver "vboxmouse"
    EndSection

HAL users should create the following `/usr/local/etc/hal/fdi/policy/90-vboxguest.fdi` or copy it from `/usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi`:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    # Sun VirtualBox
    # Hal driver description for the vboxmouse driver
    # $Id: chapter.xml,v 1.33 2012-03-17 04:53:52 eadler Exp $

    	Copyright (C) 2008-2009 Sun Microsystems, Inc.

    	This file is part of VirtualBox Open Source Edition (OSE, as
    	available from http://www.virtualbox.org. This file is free software;
    	you can redistribute it and/or modify it under the terms of the GNU
    	General Public License (GPL) as published by the Free Software
    	Foundation, in version 2 as it comes in the "COPYING" file of the
    	VirtualBox OSE distribution. VirtualBox OSE is distributed in the
    	hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.

    	Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
    	Clara, CA 95054 USA or visit http://www.sun.com if you need
    	additional information or have any questions.
    -->
    <deviceinfo version="0.2">
      <device>
        <match key="info.subsystem" string="pci">
          <match key="info.product" string="VirtualBox guest Service">
            <append key="info.capabilities" type="strlist">input</append>
    	<append key="info.capabilities" type="strlist">input.mouse</append>
            <merge key="input.x11_driver" type="string">vboxmouse</merge>
    	<merge key="input.device" type="string">/dev/vboxguest</merge>
          </match>
        </match>
      </device>
    </deviceinfo>

Prev | Home | Next
Virtualization | Up | FreeBSD as a Host