Skip to content

Barn 0.9.0

Linux labs, native macOS machines, clearer diagnostics, and recovery for interrupted operations.

Barn 0.9.0 brings Linux labs and native macOS machines into one command-line tool, with clearer diagnostics and recovery for interrupted operations.

Install 0.9.0 · Download assets · Full changelog

macOS machines on Apple Silicon

barn mac creates named macOS 27 machines with a desktop, SSH, shared folders, and text clipboard sharing. The first machine installs a base from Apple’s verified restore image; subsequent machines clone it with separate writable disks, credentials, and private subnets.

barn mac up
barn mac open
barn mac ssh

Mac guests require Apple Silicon, macOS 27+, and the native Barn Mac.app component. The 0.9.0 release archives contain the CLI; follow the Mac guide to build the native component from the release tag with Xcode 27. Apple allows two macOS VMs running at a time, including other tools. Mac state is independent of the Linux inventory and survives Linux destroy and purge.

Easier Linux lab recovery

Repeat barn up to continue unfinished setup. A failed first start can be retried after correcting the inventory, and an interrupted destroy can resume. After a host reboot, a QEMU PID reused by an unrelated process no longer blocks the lab: Barn recognizes the old VM as stopped without signaling that process.

Concurrent modifying commands wait up to ten minutes and identify the operation holding the lock. Status and access commands remain available. Plans now list each node’s data disks, including the default 128 GiB /data disk.

Diagnostics with a next step

Inventory errors include the rule, value, and source line when available, with suggestions for mistyped vm_* fields. Failed external commands retain the useful tail of stderr. JSON failures use a consistent class and optional reason and next fields.

Host setup explains its package and network changes before requesting privileges. Barn preserves linked SSH configuration files and prints the Include line to add through your dotfile manager.

Updated Linux images

The release embeds catalog 2026093001, with 41 artifacts in nine families. Debian 12/13 and Rocky Linux 8/9 use Barn-normalized images. Debian includes XFS tools and en_US.UTF-8, while keeping C.UTF-8 as its default locale. Rocky Linux 8 uses its shipped chrony configuration and chronyd service, with SELinux labels completed during image creation to avoid first-boot relabeling. Ubuntu keeps Canonical’s original image bytes. Ubuntu 24.04 remains the default.

barn image list
barn update

barn update refreshes the Linux image catalog; it does not upgrade the Barn application or replace an existing VM’s disk.

Upgrade notes

  • The command is barn, the preferred configuration file is barn.yml, and state lives under ~/.barn; environment variables use BARN_*.
  • The destructive rm alias is removed. Use purge explicitly when you intend to discard the complete Linux deployment, including persistent disks and keys.
  • For scripts, recreate_required and nodes_removed are reason values under error: "conflict"; resource_conflict becomes resource. Missing inventory and unknown images return usage/2. Read the exit-code reference.
  • stop and start keep disks. recreate replaces the root and non-persistent disks. Persistent Linux data disks may still be reset if their filesystems are unrecognized or confirmed damaged; review the storage rules.

Start with the Linux quick start or the macOS guide. Report problems with the command, Barn version, host platform, and relevant logs in GitHub Issues.