Bootimus — 一个自包含的PXE和HTTP启动服务器

Hacker News Top 工具

摘要

Bootimus是一个自包含的PXE和HTTP启动服务器,使用Go语言编写,提供零配置、嵌入式iPXE,并支持超过50种发行版。它完全开源,基于Apache 2.0许可,无遥测功能。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/20 14:23

# Bootimus — 现代 PXE/HTTP 启动服务器 来源:https://bootimus.com/ v1.x · Apache 2.0 · Go · iPXE · SQLite/PostgreSQL ## PXE 启动,从此告别繁琐。 自包含的 PXE 和 HTTP 启动服务器。单一二进制文件。零配置。内置 proxyDHCP,无需触碰路由器。自动识别 50 多种发行版。 pts/0 bootimus — 快速开始 `` $ 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 `` // 功能特性## 现代网络启动方案应有的样子。 不是对 15 年前 Perl 脚本的复刻,也不是 dnsmasq 的包装器。一个用 Go 编写、功能完备的真正服务器。 内嵌 iPXE、Web UI、SQLite 及所有资源文件的 Go 二进制文件。无需运行时依赖。直接 scp 即可运行。 在 UDP/67 端口响应 PXE 请求,不影响现有 DHCP。无需任何路由器配置。可直接部署在任何局域网。 自动提取 Ubuntu、Debian、Arch、Fedora、NixOS、Alpine、FreeBSD、Windows(wimboot)及更多系统的内核/initrd。 可按 MAC 地址分配特定镜像。首次 PXE 时自动发现新客户端。随时将租约提升为静态。 GParted、Clonezilla、Memtest86+、SystemRescue、ShredOS、netboot.xyz。从 UI 启用,即可出现在菜单中。 采用 bcrypt 令牌认证。可选 LDAP/AD 后端,支持基于用户组的权限控制。本地账户作为后备方案。 UI 的所有操作均可通过 API 调用。脚本化启动分配、扫描、WOL 触发。支持 SSE 实时日志流。 多架构 Docker(amd64/arm64)、静态二进制,或可刷写到 USB 的 2GB Alpine 设备镜像。 放入 autounattend.xml、kickstart、preseed 或 cloud-init。作为镜像的默认配置附加,或按客户端覆盖。Bootimus 在启动时自动加载——无需点击,无需设置向导。 // 工作原理## PXE 启动的完整生命周期。 客户端发送 DHCPDISCOVER。Bootimus 通过 proxyDHCP 响应 PXE 细节,而你的正常 DHCP 仍然分配 IP。iPXE 通过 TFTP 加载,链式跳转到 HTTP,获取菜单。用户选择镜像。内核和 initrd 从服务器流式传输。完成。 pts/0 pxe 启动追踪 —— ubuntu-24.04 `` [dhcp] → DHCPDISCOVER from b4:2e:99:01:5f:a3 (主 DHCP 未提供 PXE 选项) [proxy] ← DHCPOFFER-PXE: next-server=bootimus, filename=ipxe.efi [tftp] → RRQ ipxe.efi (198 KiB, 14 ms) [http] → GET /menu.ipxe 200 2.1 KiB [menu] ↳ 17 个镜像 · 3 个分组 · 6 个工具 [menu] ↳ 用户选择: ubuntu-24.04-live-server [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 · 客户端正在启动 `` // 透明度## 100% 开源。全程可审计。 无专有 blob。无遥测。无偷偷捆绑的二进制固件。整个栈在 GitHub 上采用 Apache 2.0 许可证——克隆、审计、复刻、自行部署均可。 - ✓ **单一 Go 二进制文件** · 静态链接,`ldd` 返回 "not a dynamic executable"。通过 `make release` 实现可重现构建。 - ✓ **无专有 blob** · 内嵌的 iPXE 是上游 FOSS(GPL-2.0)。未附带任何闭源固件。 - ✓ **永远无遥测** · 零回传。零分析。零“匿名使用统计”。安全适用于气隙局域网。 - ✓ **Apache 2.0** · 宽松许可。可在商业环境中使用,内部部署,自由复刻。 - ✓ **所有依赖均为 FOSS** · 每个传递性 Go 依赖都是开源的。`go mod why` 可追溯任何包。 - ✓ **自带引导加载器** · 不信任内嵌的 iPXE?放入你自己的签名二进制文件即可。详见下文。 pts/0 bootimus version \-\-verbose `` $ 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 `` // 引导加载器## 可替换 iPXE 为你需要的任何加载器。 Bootimus 为每种常见架构内嵌了 iPXE。需要 Microsoft 签名的二进制文件用于安全启动、自定义主题的 iPXE、GRUB、syslinux,或你自己的内部 CA 签名加载器?在 `data/bootloaders/` 下放入文件夹,从 UI 选择即可。缺失文件透明地回退到内嵌集合——绝不会启动失败。 ### iPXE · UEFI x86_64 ipxe.efi · 默认值。从上游 master 构建,内嵌于二进制文件中。 内嵌 · 回退 ### iPXE · UEFI ARM64 ipxe-arm64.efi · 适用于 Raspberry Pi 4/5、Apple Silicon 主机、ARM 服务器。 内嵌 · 回退 ### iPXE · 传统 BIOS undionly.kpxe · 适用于不支持 UEFI 的老旧设备。在 2026 年仍有用途。 内嵌 · 回退 ### Microsoft 签名的 shim 放入已签名的 shimx64.efi + grubx64.efi,用于安全启动强制部署的机器。无需固件 MOK 注册。 自定义 · BYO ### 自定义主题的 iPXE 编译你自己的 iPXE,加入品牌标识、自定义菜单颜色、内嵌脚本。将生成的 .efi 放入即可。 自定义 · BYO ### GRUB / syslinux / pxelinux 不是 iPXE?没问题。任何支持 TFTP 和 HTTP 的加载器都可以。Bootimus 仅负责提供字节。 自定义 · BYO pts/0 引导加载器集合 —— 文件回退 `` $ tree /var/lib/bootimus/bootloaders data/bootloaders ├── ipxe-builtin/ │ ├── ipxe.efi │ ├── ipxe-arm64.efi │ └── undionly.kpxe ├── ipxe-secureboot/ │ ├── shimx64.efi (由 Microsoft 签名) │ ├── grubx64.efi (由 Microsoft 签名) │ └── ipxe.efi (由你的 CA 签名) └── ipxe-themed/ └── ipxe.efi (自定义品牌) $ bootimus bootloaders use ipxe-secureboot ✓ 激活集合: ipxe-secureboot ✓ 缺失文件回退到 ipxe-builtin: ipxe-arm64.efi, undionly.kpxe [tftp] RRQ shimx64.efi → ipxe-secureboot/shimx64.efi [tftp] RRQ ipxe-arm64.efi → ipxe-builtin/ipxe-arm64.efi (回退) `` ## 准备好告别繁琐的 tftpd 管理了吗? 支持 Docker、裸金属或可刷写 USB。任你选择。

相似文章

Knoppix

Hacker News Top

KNOPPIX是一个可启动的Live Linux系统,位于CD、DVD或USB上,提供自动硬件检测以及无需安装即可使用的完整桌面环境。可用于日常工作、教育或作为救援系统。

裸启动Linux

Hacker News Top

本文介绍如何创建一个运行单进程的最小化Linux启动,精简通常的initramfs,使启动时间小于一秒。

Lanzaboote – NixOS 安全启动

Hacker News Top

本文介绍了 Lanzaboote,这是一个用 Rust 编写的 UEFI UKI 存根,可为 NixOS 提供安全启动支持。它将签名检查推迟到 UEFI 阶段执行,同时保持内核和 initrd 与 UKI 二进制文件分离,从而解决了 NixOS 特有的启动挑战。