-
Notifications
You must be signed in to change notification settings - Fork 6
Getting Started
The fastest way to see NextBSD is to boot a published image in a VM. Nothing is installed, nothing is partitioned, and you can throw it away afterwards.
On an Apple Silicon Mac, use the Apple Silicon Mac (UTM) Guide instead — it is a friendlier path than raw QEMU.
Grab the latest build from the continuous release.
Every successful build of main publishes four things per architecture:
| Asset | Use it for |
|---|---|
NextBSD-<arch>-<stamp>.img.zip |
Booting in a VM, or dd to a USB stick |
NextBSD-<arch>-<stamp>.iso.zip |
Optical media, and VM software that wants an ISO |
*.sha256 |
Verifying the download |
<arch> is amd64 (x86-64) or arm64 (AArch64). Both are built, boot-tested
and published on every merge. <stamp> is the UTC build time, YYYYMMDD-HHMMSS.
Unzip with whatever your platform provides — Finder, Explorer, or:
unzip NextBSD-amd64-*.img.zipsha256sum -c NextBSD-amd64-*.img.zip.sha256 # Linux
shasum -a 256 -c NextBSD-amd64-*.img.zip.sha256 # macOS
sha256 -c "$(cat NextBSD-amd64-*.img.zip.sha256)" NextBSD-amd64-*.img.zip # FreeBSDimg=$(echo NextBSD-amd64-*.img)
qemu-system-x86_64 \
-accel kvm -cpu host -m 2048 \
-bios /usr/share/OVMF/OVMF_CODE.fd \
-drive file="$img",format=raw,if=virtio \
-nic user,model=e1000 \
-nographicThe machine type is virt and the firmware is AAVMF rather than OVMF. One extra
detail: virtio-net needs its PXE option ROM disabled with romfile=, because the
arm64 QEMU packages do not ship one.
img=$(echo NextBSD-arm64-*.img)
qemu-system-aarch64 \
-accel kvm -cpu host -m 2048 -machine virt \
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
-drive file="$img",format=raw,if=virtio \
-netdev user,id=net0 -device virtio-net-pci,netdev=net0,romfile= \
-nographic
-accel kvm -cpu hostonly works when your host CPU matches the image architecture. Drop both flags to emulate instead — it works, but it is slow.
Write the .img to a USB stick and boot it. The image carries both BIOS and UEFI
boot paths and a read-write UFS root, so it boots as-is on most machines.
sudo dd if=NextBSD-amd64-<stamp>.img of=/dev/sdX bs=4M status=progress conv=fsyncCheck the device name twice. dd will overwrite whatever you point it at.
After roughly ten seconds you will see launchd start its daemons, DHCP fire on
the first Ethernet interface, syslog come up, and a login: prompt.
Log in as root with no password — just press Enter.
uname -a # ostype reads NextBSD, not FreeBSD
nextbsd-version # userland build stamp, e.g. 20260820-185023
nextbsd-version -k # the installed kernel's version
nextbsd-version -r # the running kernel's version (same as uname -r)
cat /etc/os-releaseUserland and kernel are built in separate repositories at different times, so
nextbsd-version and -k legitimately disagree. Showing that gap is precisely
what the command is for.
ipconfigd, Darwin's DHCPv4 client, configures the first Ethernet interface it
finds at boot. Under QEMU's user-mode networking you will get 10.0.2.15/24,
gateway 10.0.2.2, DNS at 10.0.2.3.
ipconfig getifaddr em0 # the interface's IP address
ipconfig ifcount # how many interfaces there are
netstat -rn # routing table, exactly as you'd expectipconfig(8) here is Darwin's tool, not FreeBSD's ifconfig(8). Both are on
the image and they are not interchangeable.
- Poke at the running system: Command Reference
- Put it on a disk: Installing NextBSD
- Install software: Installing Packages
NextBSD is pre-production — continuous builds only, no stable release yet. Questions are welcome in Discussions.