下载并引导可执行镜像¶
语法¶
chain [--name <name>] [--timeout <timeout>] [--autofree] [--replace]
[<uri|image>] [<arguments>...]
或
imgexec [--name <name>] [--timeout <timeout>] [--autofree] [--replace]
[<uri|image>] [<arguments>...]
或
boot [--name <name>] [--timeout <timeout>] [--autofree] [--replace]
[<uri|image>] [<arguments>...]
示例¶
下载并引导 iPXE 演示镜像¶
chain http://boot.ipxe.org/demo/boot.php
下载并引导 pxelinux¶
chain pxelinux.0
下载并引导带 initrd 和参数的 Linux 内核¶
initrd http://192.168.0.1/initrd.img
chain http://192.168.0.1/vmlinuz vga=788 console=ttyS0,115200n8 console=tty0
下载、运行并自动释放一个菜单脚本¶
chain --autofree http://10.0.0.1/scripts/menu.ipxe
终止当前脚本并运行新脚本¶
chain --replace http://10.0.0.1/scripts/script.ipxe
引导当前选中的镜像¶
boot
描述¶
从指定的 URI 下载并引导一个可执行镜像。可以使用 --name 选项为下载的镜像指定名称。可以使用 --timeout 选项指定下载进度超时时间(毫秒)。其余参数将直接传递给被引导的镜像。
如果没有显式指定镜像,iPXE 会引导当前选中的镜像(即 imgstat 命令所报告的镜像)。
已经下载过的镜像(例如通过 imgfetch 命令下载的)可以用镜像名称代替 URI 来指定。例如:
imgfetch http://192.168.0.1/vmlinuz
boot vmlinuz
如果该命令在 iPXE 脚本中执行,URI 会被解释为相对于脚本自身的 URI。例如,如果脚本 http://boot.ipxe.org/demo/boot.php 包含这样一行:
chain pxelinux.0
那么 iPXE 会下载并引导 http://boot.ipxe.org/demo/pxelinux.0。
如果指定了 --autofree 选项,镜像会在结束后自动释放。否则镜像会保留,可以使用 imgfree 释放。
如果指定了 --replace 选项,镜像会替换当前正在执行的脚本(类似于 Unix 的 exec() 系统调用)。否则,当镜像返回后,当前脚本会继续执行。
命令状态¶
| 成功 | 镜像成功下载并引导,且镜像随后成功返回 |
|---|---|
| 失败 | 镜像未能成功下载并引导,或镜像随后返回了错误 |
该命令很少会成功返回,因为如果引导成功,控制权就不会回到 iPXE。
另请参阅¶
imgstatimgfetchkernelimgfree- 全部 iPXE 命令列表
备注¶
chain、imgexec 和 boot 三个命令之间没有任何区别。
如果你的脚本在 chain 命令之后会立即退出,可以使用 --replace 选项来尽量减少内存占用。
如果你有一系列相互跳转且永不返回的脚本(例如用多个独立 iPXE 脚本文件实现的菜单系统),可以同时使用 --autofree 和 --replace 来避免内存耗尽。
向后兼容性¶
在旧版本的 iPXE 中,当你要从 URI 下载并引导新镜像时必须使用 chain,而要引导已下载的镜像时必须使用 imgexec 或 boot。