单一二进制
Go 二进制内嵌 iPXE、Web UI、SQLite 和全部资源。无运行时依赖。scp 上去就能跑。
一体化 PXE 与 HTTP 引导服务器。一个二进制。零配置。内建 proxyDHCP — 路由器一动不用动。自动识别 50+ 发行版。
# Pull, run, PXE boots. Thirty seconds. $ docker run -d --name bootimus \ --cap-add NET_BIND_SERVICE \ -p 67:67/udp -p 69:69/udp \ -p 8080:8080/tcp -p 8081:8081/tcp \ -v $(pwd)/data:/data \ garybowers/bootimus:latest $ docker logs bootimus | grep Password admin: Password: 7f3a-plum-swift-echo $ open http://localhost:8081
不是十五年前 Perl 脚本的分支。不是套在 dnsmasq 外面的壳子。一个用 Go 写的正经服务器,该有的全部内置。
Go 二进制内嵌 iPXE、Web UI、SQLite 和全部资源。无运行时依赖。scp 上去就能跑。
在 UDP/67 上应答 PXE,完全不干扰你现有的 DHCP。路由器零改动。任意局域网即插即用。
自动提取 Ubuntu、Debian、Arch、Fedora、NixOS、Alpine、FreeBSD、Windows (wimboot) 等系统的 kernel/initrd。
为每个 MAC 指派专属镜像。首次 PXE 请求自动发现新客户端。准备就绪后将租约提升为静态。
GParted、Clonezilla、Memtest86+、SystemRescue、ShredOS、netboot.xyz。UI 里勾选,菜单立即出现。
bcrypt 加密的 token 认证。可选 LDAP/AD 后端,基于组的管理员权限。本地账号始终作为兜底。
UI 能做的事,API 全都能做。脚本化引导分配、扫描、WoL 触发。通过 SSE 实时推送日志流。
多架构 Docker (amd64/arm64)、静态二进制,或可烧录到 U 盘的 2GB 基于 Alpine 的设备镜像。
把 autounattend.xml、kickstart、preseed 或 cloud-init 文件丢进去。挂到镜像做默认,按客户端覆盖。Bootimus 在引导时自动投放 — 无需点击,无需向导。
客户端发出 DHCPDISCOVER。Bootimus 通过 proxyDHCP 回应 PXE 详情,你原本的 DHCP 继续分配 IP。iPXE 通过 TFTP 加载,链式跳转到 HTTP,拉取菜单。用户选择镜像。kernel 和 initrd 从服务器流式传输。完成。
# Client boots, sends DHCPDISCOVER broadcast [dhcp] → DHCPDISCOVER from b4:2e:99:01:5f:a3 (no PXE options from primary DHCP) [proxy] ← DHCPOFFER-PXE: next-server=bootimus, filename=ipxe.efi [tftp] → RRQ ipxe.efi (198 KiB, 14 ms) # iPXE loads, chains to HTTP menu [http] → GET /menu.ipxe 200 2.1 KiB [menu] ↳ 17 images · 3 groups · 6 tools [menu] ↳ user selected: ubuntu-24.04-live-server # Kernel + initrd stream over HTTP [http] → GET /iso/ubuntu-24.04/vmlinuz 200 14 MiB · 612 MB/s [http] → GET /iso/ubuntu-24.04/initrd 200 76 MiB · 598 MB/s [boot] handoff ok · client booting
没有专有 blob。没有遥测。没有偷偷塞进来的固件二进制。整套技术栈在 GitHub 上以 Apache 2.0 发布 — 克隆、审计、分叉、自部署随你便。
$ bootimus version --verbose bootimus 1.0.0 commit 8e87824 (clean) go 1.23.4 linux/amd64 build static · reproducible licence Apache-2.0 embedded ipxe 1.21.1+upstream GPL-2.0 proprietary 0 blobs telemetry disabled (compile-time) $ ldd ./bootimus not a dynamic executable $ sha256sum ./bootimus 7f3a9b0c… bootimus
Bootimus 为每种常见架构内嵌了 iPXE。需要 Secure Boot 用的微软签名二进制、定制主题的 iPXE、GRUB、syslinux,或你自家内部 CA 签名的 loader?把文件夹丢到 data/bootloaders/,UI 里勾选,搞定。缺失文件会透明地回退到内嵌套件 — 永远不会引导失败。
ipxe.efi · 默认。从上游 master 构建,内嵌进二进制。
内嵌 · 兜底ipxe-arm64.efi · 适用于 Raspberry Pi 4/5、Apple Silicon 主机、ARM 服务器。
内嵌 · 兜底undionly.kpxe · 给那些不会 UEFI 的老设备。2026 年依然有市场。
内嵌 · 兜底把签名的 shimx64.efi + grubx64.efi 丢进去 — 适用于强制 Secure Boot 的集群。无需固件 MOK 注册。
自定义 · BYO编译你自己的 iPXE,带品牌标识、定制菜单配色、内嵌脚本。把 .efi 放进去即可。
自定义 · BYO不用 iPXE?没问题。任何会 TFTP 和 HTTP 的东西都行。Bootimus 只负责吐字节。
自定义 · BYO$ tree /var/lib/bootimus/bootloaders data/bootloaders ├── ipxe-builtin/ # embedded — always available │ ├── ipxe.efi │ ├── ipxe-arm64.efi │ └── undionly.kpxe ├── ipxe-secureboot/ # your custom set │ ├── shimx64.efi (signed by Microsoft) │ ├── grubx64.efi (signed by Microsoft) │ └── ipxe.efi (signed by your CA) └── ipxe-themed/ └── ipxe.efi (custom branding) $ bootimus bootloaders use ipxe-secureboot ✓ active set: ipxe-secureboot ✓ falls back to ipxe-builtin for: ipxe-arm64.efi, undionly.kpxe # PXE boot trace, Secure Boot client [tftp] RRQ shimx64.efi → ipxe-secureboot/shimx64.efi [tftp] RRQ ipxe-arm64.efi → ipxe-builtin/ipxe-arm64.efi (fallback)