Flash OS images onto target disks¶
Flash a single bare-metal box ad-hoc with a USB stick, or reflash a whole fleet remotely from a single controller. bty works with or without PXE and scales from one machine to a rack without changing how you operate. The image is the source of truth: rebuild the image, reflash the target.
bty is a flasher, not an image builder. First-boot bring-up (users, network, packages, hostnames) gets baked into the image upstream with cloud-init / kickstart / preseed; the companion project nosi is one such builder, but any source of pre-built images works. bty just writes the bytes.
Walkthroughs
Tutorials
Reference
- Concepts
- Flows
- Direct flash (USB live, offline)
- USB + network catalog (
bty --catalog SOURCE) - Interactive PXE flash (
boot_mode=bty-tui) - Server-driven PXE flash (
boot_mode=bty-flash-always) - Machine state model
- Inventory + safety-gate flow
- Automated event-driven transitions
- Audit log: event kinds by trigger
- Operator UI actions: a quick map
- Safety gates summary
- Components
- Operations: backup, upgrade, migrate
- Dependencies
- CI and release verification
- Related work
- Heavy fleet orchestrators - MAAS, Foreman, Tinkerbell, OpenStack Ironic
- Image-deploy in similar shape - FOG Project, iVentoy, Clonezilla SE
- Installer-based provisioners - netboot.xyz, Cobbler, Microsoft WDS/MDT
- OS-specific image platforms - Fedora CoreOS, Flatcar, Bottlerocket, NixOS
- Image creation - Packer, mkosi, debian-live, jkab
- Manual flashers - dd, Etcher, Rufus, Ventoy
- What makes bty distinct
- Reference
- Changelog
- [0.60.0] - 2026-06-25
- [0.59.0] - 2026-06-25
- [0.58.3] - 2026-06-25
- [0.58.2] - 2026-06-23
- [0.58.1] - 2026-06-23
- [0.58.0] - 2026-06-22
- [0.57.1] - 2026-06-19
- [0.57.0] - 2026-06-19
- [0.56.0] - 2026-06-19
- [0.55.12] - 2026-06-19
- [0.55.11] - 2026-06-18
- [0.55.10] - 2026-06-18
- [0.55.9] - 2026-06-18
- [0.55.8] - 2026-06-17
- [0.55.7] - 2026-06-17
- [0.55.6] - 2026-06-17
- [0.55.5] - 2026-06-17
- [0.55.4] - 2026-06-17
- [0.55.3] - 2026-06-17
- [0.55.2] - 2026-06-16
- [0.55.1] - 2026-06-16
- [0.55.0] - 2026-06-15
- [0.54.0] - 2026-06-15
- [0.53.0] - 2026-06-15
- [0.52.0] - 2026-06-14
- [0.51.0] - 2026-06-14
- [0.50.0] - 2026-06-13
- [0.49.0] - 2026-06-13
- [0.48.0] - 2026-06-12
- [0.47.0] - 2026-06-12
- [0.46.0] - 2026-06-11
- [0.45.1] - 2026-06-11
- [0.45.0] - 2026-06-11
- [0.44.3] - 2026-06-11
- [0.44.2] - 2026-06-11
- [0.44.1] - 2026-06-11
- [0.44.0] - 2026-06-10
- [0.43.1] - 2026-06-10
- [0.43.0] - 2026-06-10
- [0.42.0] - 2026-06-10
- [0.41.5] - 2026-06-09
- [0.41.4] - 2026-06-09
- [0.41.3] - 2026-06-09
- [0.41.2] - 2026-06-09
- [0.41.1] - 2026-06-09
- [0.41.0] - 2026-06-09
- [0.40.0] - 2026-06-09
- [0.39.1] - 2026-06-08
- [0.39.0] - 2026-06-07
- [0.38.0] - 2026-06-07
- [0.37.0] - 2026-06-06
- [0.36.0] - 2026-06-05
- [0.34.0] - 2026-05-28
- [0.33.30] - 2026-05-28
- [0.33.29] - 2026-05-26
- [0.33.28] - 2026-05-26
- [0.33.23] - 2026-05-26
- [0.33.22] - 2026-05-26
- [0.33.21] - 2026-05-26
- [0.33.20] - 2026-05-26
- [0.33.19] - 2026-05-26
- [0.33.18] - 2026-05-26
- [0.33.17] - 2026-05-26
- [0.33.16] - 2026-05-26
- [0.33.15] - 2026-05-26
- [0.33.14] - 2026-05-26
- [0.33.13] - 2026-05-26
- [0.33.12] - 2026-05-26
- [0.33.11] - 2026-05-26
- [0.33.10] - 2026-05-26
- [0.33.9] - 2026-05-26
- [0.33.8] - 2026-05-26
- [0.33.7] - 2026-05-25
- [0.33.6] - 2026-05-25
- [0.33.5] - 2026-05-25
- [0.33.4] - 2026-05-25
- [0.33.3] - 2026-05-25
- [0.33.2] - 2026-05-25
- [0.33.1] - 2026-05-25
- [0.33.0] - 2026-05-25
- [0.32.4] - 2026-05-25
- [0.32.3] - 2026-05-25
- [0.32.2] - 2026-05-25
- [0.32.1] - 2026-05-25
- [0.32.0] - 2026-05-25
- [0.31.1] - 2026-05-25
- [0.31.0] - 2026-05-25
- [0.30.2] - 2026-05-25
- [0.30.1] - 2026-05-25
- [0.30.0] - 2026-05-24
- [0.29.0] - 2026-05-24
- [0.28.0] - 2026-05-24
- [0.27.0] - 2026-05-24
- 0.26.0 - 2026-05-24