关于觅星云刻(MPXE)
项目简介
觅星云刻(MPXE)是一个针对信创环境的一键PXE安装环境。项目完全使用Python语言开发,旨在帮助运维人员快速搭建信创环境下的PXE网络部署环境。
MPXE兼容x86_64、ARM64、LoongArch64三大主流CPU架构,支持银河麒麟、OpenEuler、CentOS、Anolis、Deepin、UOS等国产操作系统的网络引导安装。
项目特点
- 纯Python实现:核心服务全部使用Python开发,无第三方依赖
- 多架构支持:同时支持x86、ARM、LoongArch三种架构
- 开箱即用:下载即可使用,无需复杂配置
- Web管理界面:直观的图形化管理界面
- 无人值守:支持自动应答文件,实现全程自动化
- 实时监控:实时查看客户端安装进度
适用场景
- 企业批量部署国产操作系统
- 数据中心服务器标准化安装
- 信创环境迁移与部署
- 测试环境快速搭建
- 多架构平台统一管理
技术栈
核心技术
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 编程语言 | Python 3.6+ | 跨平台、零依赖、易维护 |
| DHCP服务 | 自研Python实现 | 支持标准DHCP和ProxyDHCP模式 |
| TFTP服务 | 自研Python实现 | 支持RFC2348块大小选项 |
| HTTP服务 | 自研Python实现 | 支持分块传输、SSE实时推送 |
| 文件共享 | NFS | 利用系统NFS服务传输镜像 |
| 引导协议 | GRUB2 | 支持HTTP引导和多架构启动 |
开源组件
- GRUB2:通用引导加载器,支持HTTP引导和多架构UEFI启动
- NFS:网络文件系统协议
系统架构
架构图
┌──────────────────────────────────────────────────────────────┐
│ MPXE服务器 │
├──────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ HTTP服务 │ │ DHCP服务 │ │ TFTP服务 │ │
│ │ (Port 80) │ │ (Port 67) │ │ (Port 69) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ │ Web管理界面 │ │
│ └───────────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐ │
│ │ 镜像文件 │ │ 引导文件 │ │ 配置文件 │ │
│ │ (ISO) │ │ (GRUB2) │ │ (KS/CFG) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ │ NFS服务 │ │
│ │ (Port 111/2049)│ │
│ └───────────────┘ │
│ │ │
└────────────────────────────┼───────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ x86_64 │ │ ARM64 │ │LoongArch │
│ 客户端 │ │ 客户端 │ │ 客户端 │
└──────────┘ └──────────┘ └──────────┘
网络拓扑
┌─────────────┐ 千兆网络 ┌─────────────┐
│ PXE服务器 │◄─────────────────────────►│ 客户端1 │
│ │ │ │
│ IP: 静态 │ │ 桌面/服务器 │
│ │ │ │
│ 服务: │ └─────────────┘
│ - DHCP │
│ - TFTP │ ┌─────────────┐
│ - HTTP │◄─────────────────────────►│ 客户端2 │
│ - NFS │ │ │
│ │ └─────────────┘
└─────────────┘ │
│
┌──────────────┴──────────────┐
│ 同一局域网(同一广播域) │
└─────────────────────────────┘
许可证
觅星云刻(MPXE)遵循MIT许可证开源发布。
MIT License
Copyright (c) 2025 Misstar PXE Project
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
基于以下开源项目:
- GRUB2: GNU GPL v3
以上项目版权归其各自所有者所有。
参与贡献
提交问题
如果您在使用过程中遇到问题,欢迎提交Issue:
- 请先搜索是否已有类似问题
- 描述清楚问题现象和环境配置
- 提供相关日志信息
- 描述您期望的行为
提交代码
欢迎提交Pull Request:
- Fork本项目到您的仓库
- 创建特性分支:
git checkout -b feature/your-feature - 提交更改:
git commit -m 'Add some feature' - 推送到分支:
git push origin feature/your-feature - 创建Pull Request
代码规范
- 遵循PEP 8代码风格
- 使用有意义的变量和函数命名
- 为公共函数添加docstring
- 保持代码简洁清晰
更新日志
开发版 (v0.0.7-dev 即将发布)
- ✅ 从iPXE全面迁移到GRUB2,重构DHCP服务架构,提升兼容性
- ✅ 租约持久化增强,支持服务重启后恢复租约记录
- ✅ IP分配优化:ARP缓存快速检测+ping双重验证,避免IP冲突
- ✅ 新增DHCP_LEASE_DURATION租约时长、SYSLOG远程日志配置
- ✅ 新增/web/get_server_info API接口
- ✅ 修复网页提交配置后自动重启服务异常问题
- ✅ 监控脚本兼容 curl/wget 双工具,修复缺少 curl 时中断安装进程
- ✅ 设置配置文件搜索优先级,修复中科 grub.cfg 识别异常问题
- ✅ 修复GRUB默认项与超时不生效问题
- ✅ 调整 monitor.cfg.tpl 初始安装配置:添加中文键盘布局、切换为 minimal-environment
- ✅ gen_cfg.sh 中 find 命令抑制错误输出,避免无权限目录产生冗余报错
- ✅ 分离 DHCP 租约与安装状态:leases.json 仅保留租约字段,isoname/progress/status/msg 写入 install_status.json
- ✅ 统一 JSON 文件锁与原子写,所有写操作通过 .tmp + os.replace 实现,避免写坏配置文件
- ✅ 修正 DHCP craft_header 用消息类型区分 OFFER/ACK,避免重连时错误重新分配 IP
- ✅ 安装进度上报时自动刷新租约过期时间,防止长安装被清理
v0.0.6 (2026-04-08)
- ✅ 优化GRUB菜单显示逻辑,支持机型图标分类(kylin/uos/fedora等)
- ✅ 首次启动自动识别第一个UP网卡,自动计算IP、子网掩码、地址池
- ✅ 新增功能列表文档,完善README
- ✅ 优化服务重启稳定性,增加自动重试机制
v0.0.5 (2026-01-01)
- ✅ 新增功能:支持修改HTTP端口
- ✅ 新增功能:附加外部文件到镜像(extfile)
- ✅ 新增UOS操作系统支持
- ✅ NFS配置改为重载模式,免重启生效
- ✅ 修复特殊文件名挂载失败问题
- ✅ 修复鲲鹏920无法引导问题
- ✅ 拆分卸载目录逻辑,优化服务管理
v0.0.4 (2025-06-22)
- ✅ 更新README文档
- ✅ 修复复制配置grub.efi文件缺失问题
- ✅ 保存配置改为仅更新不重启服务
- ✅ 新增兼容模式支持
v0.0.3 (2025-05-14)
- ✅ 重构NFS启动逻辑
- ✅ 修复IP未更新问题
- ✅ 增加初始配置值,解决首次启动失败问题
- ✅ 修复更换IP后第一次启动失败问题
- ✅ 增加启动失败提示,优化页面显示
v0.0.2 (2025-04-12)
- ✅ 增加LoongArch64 EFI GRUB模块支持
- ✅ 修复修改配置后重启服务gen_boot.sh未执行导致grub.cfg未更新
- ✅ 修复手动删除配置失败
- ✅ 修复删除镜像后自动清理配置
v0.0.1 (2025-03-27)
- 🚀 首个版本发布
- ✅ 支持x86_64、ARM64、LoongArch64三大架构PXE引导
- ✅ 纯Python实现HTTP/DHCP/TFTP服务
- ✅ Web图形化管理界面
- ✅ 多镜像管理切换
- ✅ 无人值守自动安装(Kickstart/Preseed)
开发团队
核心开发者
| 角色 | 昵称 | 邮箱 |
|---|---|---|
| 项目创始人 | Onion | onion@misstar.com |
贡献者
感谢所有为MPXE项目做出贡献的朋友!
交流与支持
官方交流群
Q群:390480890
欢迎加入群聊交流使用心得、反馈问题、分享经验。
开源仓库
相关资源
致谢
MPXE项目基于以下优秀开源项目:
- GRUB2 - GNU引导加载器,UEFI网络引导方案
- NFS - 网络文件系统协议
感谢所有开源社区的贡献者!