ArcBox Boot Assets
boot-assets is the single source of truth for ArcBox VM boot artifacts (schema v7).
Each release publishes per-architecture tarballs plus a unified multi-target manifest:
boot-assets-{arch}-v{version}.tar.gzboot-assets-{arch}-v{version}.tar.gz.sha256manifest.json(schema v7, multi-target)
The tarball contains:
kernel— pre-built Linux kernel fromarcbox-labs/kernel(all drivers built-in,CONFIG_MODULES=n)rootfs.erofs— minimal read-only rootfs (busybox + mkfs.btrfs + iptables-legacy + CA certs)manifest.json— per-arch manifest (merged into unified manifest at release time)
No agent binary, no runtime binaries, no initramfs. Agent and runtime are distributed via VirtioFS from the host.
Manifest Schema (v7)
The manifest supports multiple target architectures and host-side binaries:
{
"schema_version": 7,
"asset_version": "0.2.0",
"built_at": "2026-03-03T12:00:00Z",
"source_repo": "arcbox-labs/kernel",
"source_ref": "v0.1.0",
"source_sha": "abc123",
"targets": {
"arm64": {
"kernel": { "path": "arm64/kernel", "sha256": "...", "version": "6.12.8" },
"rootfs": { "path": "arm64/rootfs.erofs", "sha256": "..." },
"kernel_cmdline": "console=hvc0 root=/dev/vda ro rootfstype=erofs earlycon"
},
"x86_64": {
"kernel": { "path": "x86_64/kernel", "sha256": "...", "version": "6.12.8" },
"rootfs": { "path": "x86_64/rootfs.erofs", "sha256": "..." },
"kernel_cmdline": "console=ttyS0 root=/dev/vda ro rootfstype=erofs earlycon"
}
},
"binaries": [
{
"name": "dockerd",
"version": "27.5.1",
"targets": {
"arm64": { "path": "bin/arm64/dockerd", "sha256": "..." },
"x86_64": { "path": "bin/x86_64/dockerd", "sha256": "..." }
}
}
]
}
CLI Usage
The tool is built with Rust. Install with cargo build --release.
# Build EROFS rootfs only
# Full release build (single arch)
# With pre-built rootfs
# Merge per-arch manifests into unified multi-target manifest
Build And Release
CI release workflow
Workflow file: .github/workflows/release.yml
Trigger:
- Push tag:
v* - Manual dispatch with explicit version
Pipeline stages:
- Download kernel — downloads pre-built ARM64/x86_64 kernels from
arcbox-labs/kernelrelease - Build EROFS rootfs — creates minimal rootfs from Alpine static binaries (per-arch)
- Assemble — packages kernel + rootfs.erofs + manifest.json into tarball (per-arch)
- Merge — merges per-arch manifests into unified multi-target manifest
- Release — publishes to GitHub Releases and Cloudflare R2
Local build
Prerequisites:
- Rust toolchain
- Docker (for extracting static Alpine binaries)
mkfs.erofs(erofs-utils)- Kernel binary from
arcbox-labs/kernelrelease
# Build the CLI
# Download kernel from arcbox-labs/kernel release
# Full release build
Output files are written to dist/.
EROFS Rootfs Contents
/ (EROFS, read-only, LZ4HC compressed)
├── bin/
│ └── busybox # Static busybox (+ symlinks: sh, mount, mkdir, ...)
├── sbin/
│ ├── init # Trampoline: mount /proc /sys /dev → mount VirtioFS → exec agent
│ ├── mkfs.btrfs # Btrfs formatter (first-boot data disk)
│ ├── iptables # iptables-legacy (Docker bridge networking)
│ └── (symlinks) # iptables-save, iptables-restore, ip6tables, ...
├── lib/
│ └── ld-musl-*.so.1 # musl libc
├── cacerts/
│ └── ca-certificates.crt
└── (mount points) # tmp/ run/ proc/ sys/ dev/ mnt/ arcbox/ Users/ etc/ var/