跳转至

下载镜像

语法

  imgfetch [--name <name>] [--timeout <timeout>] <uri> [<arguments>...]

  module [--name <name>] [--timeout <timeout>] <uri> [<arguments>...]

  initrd [--name <name>] [--timeout <timeout>] <uri> [<arguments>...]

示例

下载一个 1MB 的测试文件

  imgfetch http://boot.ipxe.org/1mb

下载并引导 Linux 内核、initrd 和内核模块

  #!ipxe
  kernel vmlinuz
  initrd initrd.img
  initrd modules/6.0.16/e1000.ko /lib/modules/e1000.ko
  boot

描述

从指定的 URI 下载镜像。可以使用 --name 选项为下载的镜像指定名称。可以使用 --timeout 选项指定下载进度超时时间(毫秒)。其余参数将直接传递给镜像。

如果该命令在 iPXE 脚本中执行,URI 会被解释为相对于脚本自身的 URI。例如,如果脚本 http://boot.ipxe.org/demo/boot.php 包含这样一行:

  imgfetch initrd.img

那么 iPXE 会下载 http://boot.ipxe.org/demo/initrd.img

命令状态

成功 镜像下载成功
失败 镜像未能成功下载

另请参阅

备注

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

引导 Linux 内核时,iPXE 会通过把下载的文件注入初始 RAM 文件系统镜像来构造一个"魔法 initrd"。提供给 initrd 命令的任何参数都会被用作该镜像在 initrd.magic 初始 RAM 文件系统中的路径名。例如,对于脚本:

  #!ipxe

  kernel vmlinuz
  initrd initrd.img
  initrd initscripts/deploy.sh /sbin/init mode=755
  boot

文件 initrd.img 会被当作普通的 initramfs 文件系统镜像,而文件 deploy.sh 会以一个额外的可执行文件 /sbin/init 的身份出现在该文件系统中。

可选的 mode 参数可用于修改文件权限,默认为 644。这对于需要执行的二进制文件很有用。

可选的 mkdir 参数可用于创建父目录(如果这些目录在 initramfs 文件系统镜像中尚不存在)。例如:

  #!ipxe

  kernel vmlinuz
  initrd initrd.img
  initrd logo.png /opt/oem/logo.png mkdir=1
  boot

对于较旧的内核(Linux 5.7 之前),在 UEFI 模式下引导时需要添加内核命令行参数 initrd=initrd.magic