Enjoying Open Source Software

NetBSD 9.3 on FreeBSD bhyve

NetBSD 9.3 as guest on the FreeBSD bhyve hypervisor

Headless FreeBSD box, with existing bridge.

I wanted to install NetBSD 9.3 as a virtual machine on a headless FreeBSD machine. This machine already has a bridge in place.


bhyve was already running on this machine, however I got UEFI problems when I tried to setup a VM on the 'normal' way, with bhyvectl.

It turned out that using vm-bhyve makes things much easier.

Also, using this method, there is no need for VNC, only a ssh connection to the FreeBSD host is required. The console runs in your terminal, so in your tmux session.

Steps to get a running NetBSD VM

  • Install packages
  • Create ZFS dataset
  • Enable and configure vm-bhyve
  • Initiate vm-bhyve
  • Add existing bridge to vm-bhyve config
  • Create the VM and start the installation

1 Install packages

First install bhyve, and vm-bhyve.

The following packages where already installed:

  • bhyve-firmware
  • grub2-bhyve
  • uefi-edk2-bhyve-csm

Therefor, I only had to install vm-bhyve:

pkg install vm-bhyve 

2 Create ZFS dataset

zfs create zroot/vm-bhyve
zfs set mountpoint=/vm-bhyve zroot/vm-bhyve

3 Enable and configure vm-bhyve

Add to /etc/rc.conf:


4 Initiate vm-bhyve

vm init

cd /vm-bhyve/
cp /usr/local/share/examples/vm-bhyve/* .templates/

5 Add existing bridge to vm-bhyve config

vm switch create -t manual -b bridge0 bridge0

6 Create the VM and start the installation

mv NetBSD-9.3-amd64.iso /vm-bhyve/.iso
vm create -t netbsd -s 10G netbsdvm
vm install netbsdvm NetBSD-9.3-amd64.iso
vm console netbsdvm

Now you can perform the normal installation.

I accepted most default settings, and set the console to 115200 baud.

Make sure vm-bhyve uses a tap device that is already added to the bridge. If not, you can add a tap device to the bridge with:

ifconfig bridge0 addm tap1

Setup the network config in the guest fitting to your bridge settings.

After the installation, NetBSD will reboot, you can stay in the console.

Close the console with ~Ctrl D, that is tilde, followed by Ctrl-D.

Run the VM

You can start and stop the VM with

vm start netbsdvm
vm stop  netbsdvm

Happy VM-ing !


⇽ Open files with Deft in read only mode Fun with ersatz-emacs on NetBSD 3.0 ⇾