Skip to content

feat(freebsd): Initial support for freebsd guests#538

Draft
cmainas wants to merge 2 commits intomainfrom
feat_freebsd
Draft

feat(freebsd): Initial support for freebsd guests#538
cmainas wants to merge 2 commits intomainfrom
feat_freebsd

Conversation

@cmainas
Copy link
Contributor

@cmainas cmainas commented Mar 20, 2026

Description

Add initial support for FreeBSD guests. In the current status, urunc can boot FreeBSD based workloads which use a block based rootfs. This can be done either through a block image inside the container's image or through devmapper and the use of ext2 as the filesystem for the block-based snapshot.

Since FreeBSD does not accept arbitrary kernel boot parameters, nor accepts network configuration through kernel boot parameters, the current implementation attaches an extra text file through virtio block. This text file contains the urunit configuration which has been updates to also include the network configuration and the application, along with its arguments.

Furthermore, the current approach is limited to Firecracker, since the Qemu microVM support does not seem to work properly for FreeBSD.

Related issues

Add support for FreeBSD

How was this tested?

Creating a new image with a FreeBSD kernel and running it. There are two images, one with a block image for the rootfs and one with raw files in the container images which requires devmapper with ext2 filesystem for the snapshot.

LLM usage

N/A

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

Add initial support for FreeBSD guests. In the current status, urunc can
boot FreeBSD based workloads which use a block based rootfs. This can be
done either through a block image inside the container's image or
through devmapper and the use of ext2 as the filesystem for the
block-based snapshot.

Since FreeBSD does not accept arbitrary kernel boot parameters, nor
accepts network configuration through kernel boot parameters, the
current implementation attaches an extra text file through virtio block.
This text file contains the urunit configuration which has been updates
to also include the network configuration and the application, along
with its arguments.

Furthermore, the current approach is limited to Firecracker, since the
Qemu microVM support does not seem to work properly for FreeBSD.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
Add information in docs for FreeBSD as a supported guest, providing a
few information about it and the support over urunc.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
@netlify
Copy link

netlify bot commented Mar 20, 2026

Deploy Preview for urunc ready!

Name Link
🔨 Latest commit a531eec
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/69bd796fa8e59c00077cb3e5
😎 Deploy Preview https://deploy-preview-538--urunc.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@cmainas cmainas force-pushed the feat_freebsd branch 4 times, most recently from 2cb67b8 to 1208aaa Compare March 20, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant