引导菜单配置
决定客户端引导后看到什么菜单、能启动什么。基于 iPXE 的可视化配置,无需手写脚本。
相关文档: Profile 操作 | 网络启动目录 | 架构映射与 Secure Boot
什么时候用
- 客户端引导后直接跳转 OS 安装目录 → 需在 设置 → Netboot → 安装目录跳转 开启后才会发生;默认不跳转
- 要自定义菜单(装系统、从本地启动、无盘启动等)→ 创建 Profile
- 某台机器固定装某个系统 → Profile 绑定到主机 MAC
- 不想要 OS 目录跳转、想完全自控菜单 → 配置默认菜单
引导决策链
客户端请求引导脚本时,PxeLab 按以下顺序决定返回什么:
1. 有自定义 iPXE 脚本? → 直接返回,忽略其余配置
2. 主机绑定了 Profile? → 返回该 Profile 菜单
3. 启用了 OS 目录跳转? → 跳转到 Netboot OS 安装目录
4. 以上都不是 → 返回默认引导菜单引导类型
| 类型 | 用途 | 示例 |
|---|---|---|
direct | 直接加载内核 + initrd | Linux 安装 |
chain | 链式加载其他引导器/ISO | GRUB2、Memdisk ISO |
sanboot | iSCSI SAN 启动 | 无盘工作站 |
wds | Windows WIM 引导 | Windows PE / 安装 |
local | 从本地硬盘启动 | 默认兜底 |
custom | 完全自定义 iPXE 脚本 | 高级用法 |
任务 1:创建 Profile
入口:基础配置 → 引导菜单(Profiles) → 新建。一个 Profile 就是一个引导项:
| 字段 | 说明 |
|---|---|
| Profile 名称 | 菜单中显示的名称 |
| 架构 | 适用的客户端架构 |
| 引导类型 | 上表六种之一 |
| 内核路径 / Initrd 路径 | direct 类型时填写(如 vmlinuz / initrd.img) |
| 命令行参数 | 内核参数(如 net.ifnames=0 console=tty0) |
| URL | chain / sanboot 类型时的目标地址(如 iscsi:192.168.1.50::::iqn.2024-01:disk) |
保存后,自定义脚本类型的 Profile 每次修改会自动保存版本快照,可对比差异、回滚任意版本(其他类型不自动生成快照)。
任务 2:绑定主机
管理 → 主机管理 → 打开主机详情 → 关联该 Profile。绑定后,这台机器引导时跳过默认流程,直接走它的 Profile。
任务 3:配置默认菜单
默认菜单的内容(菜单项)来自默认 Profile:基础配置 → 引导菜单(Profiles) → 打开默认 Profile → 编辑引导项(local、各 Profile 等)。
侧边栏底部 设置 → 引导菜单 可调整:
- 超时时间:0 = 不自动选择;>0 = 超时后自动选择默认项
- 列出全部 Profiles:开启后默认菜单展示所有 Profile,否则仅展示默认 Profile 的引导项
注意:默认菜单标题在开启「列出全部 Profiles」时固定为
PxeLab Boot Menu,关闭时使用默认 Profile 名称(均不可在界面修改);且只在「未绑定 Profile 且未启用 OS 目录跳转」时出现。
任务 4:完全自定义(自定义 iPXE 脚本)
侧边栏底部 设置 → 引导菜单 → 自定义 iPXE 脚本:填写脚本后完全替代所有可视化配置(高级用户)。可用模板变量:
常见问题
Q: 客户端引导后直接进了 OS 安装目录,看不到默认菜单? OS 目录跳转默认关闭。若已开启(设置 → Netboot → 安装目录跳转),关闭「启用跳转」即可回到默认菜单。
Q: Profile 改了不生效? 确认保存;绑定 Profile 的主机走 Profile 菜单,检查主机详情里的关联是否正确。