跳转至

下载并引导可执行镜像

语法

  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。

另请参阅

备注

chainimgexecboot 三个命令之间没有任何区别。

如果你的脚本在 chain 命令之后会立即退出,可以使用 --replace 选项来尽量减少内存占用。

如果你有一系列相互跳转且永不返回的脚本(例如用多个独立 iPXE 脚本文件实现的菜单系统),可以同时使用 --autofree--replace 来避免内存耗尽。

向后兼容性

在旧版本的 iPXE 中,当你要从 URI 下载并引导新镜像时必须使用 chain,而要引导已下载的镜像时必须使用 imgexecboot