Nanos works on Bhyve with some caveats:

  • Nanos uses ELF files so this support is intended more to run Nanos images not necessarily build them since the default file format on FreeBSD is a.out.

Nanos has been test on 13.6.0 and 14.x.

Install bhyve firmware:

pkg install sysutils/bhyve-firmware 

Create a tap/bridge:

# ifconfig tap0 create
# sysctl 0 -> 1
# ifconfig bridge0 create
# ifconfig bridge0 addm em0 addm tap0
# ifconfig bridge0 up

Create/run a Nanos VM:

# bhyve -AHP -s 0:0,hostbridge -s 1:0,virtio-blk,./disk.raw \
  -s 2:0,virtio-net,tap0 -s 3:0,virtio-rnd -s 31:0,lpc \
  -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
  -l com1,stdio nanos

To stop the VM:

killall bhyve

When building with OPS include the UEFI loader in your config.json:

  "Uefi": true

Last updated