Dual Boot FreeBSD on macOS: Giving Disk Space to a Civilized OS

#freebsd#macos#dual-boot#disk#apfs

The Goal

Carve out space from macOS APFS to install FreeBSD 16.0-CURRENT alongside it. Because one OS should be civilized.

Step 1: Shrink macOS

# Check current layout
diskutil list

# Shrink APFS container (e.g., keep 500GB for macOS)
sudo diskutil apfs resizeContainer disk0s2 500g

This leaves the rest as unallocated space. FreeBSD’s installer will handle it from there.

# Check min/max before committing
diskutil apfs resizeContainer disk0s2 limits

Gotchas:

Step 2: Flash FreeBSD CURRENT

Grab the full memstick.img — not bootonly, not disc1 ISO.

# Find USB disk
diskutil list

# Unmount
diskutil unmountDisk /dev/disk4

# Flash (rdisk for raw speed)
sudo dd if=FreeBSD-16.0-CURRENT-amd64-20260202-6d37c3db62ba-283549-memstick.img of=/dev/rdisk4 bs=1m status=progress

Step 3: Boot & Install

Step 4: Boot Manager

Install rEFInd from macOS before the FreeBSD install to avoid holding Option every time:

brew install --cask refind
sudo refind-install

Intel vs Apple Silicon

Intel MacApple Silicon
FreeBSD supportSolidExperimental
Wi-FiHit or miss (have ethernet ready)Not there yet
RecommendationGo for itUse a VM instead

Recovery

If things go sideways, boot into Recovery Mode and reclaim all space:

diskutil apfs resizeContainer disk0s2 0

Image Variants Cheat Sheet

ImageUse
memstick.imgThis one. Full offline install via USB
disc1.isoSame content, for CD/DVD (useless for Mac)
bootonlyMinimal, needs network for everything
mini-memstickStripped USB, still needs network

Always grab the .xz to save bandwidth, decompress with xz -dk.

Post-Install

pkg install sudo vim git mise
sysrc sshd_enable=YES

Welcome to the civilized side.