Table of Contents

Download an image

Synopsis

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

or

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

or

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

Examples

Download a 1MB test file

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

Download and boot a Linux kernel, initrd and kernel module

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

Description

Download an image from the specified URI. A name for the downloaded image can be specified using the --name option. A download progress timeout can be specified (in milliseconds) using the --timeout option. Any remaining arguments will be passed directly to the image.

If this command is executed from within an iPXE script, then the URI will be interpreted as being relative to the URI of the script itself. For example, if the script http://boot.ipxe.org/demo/boot.php contains the line

  imgfetch initrd.img

then iPXE will download http://boot.ipxe.org/demo/initrd.img.

Command status

Success The image was successfully downloaded
Failure The image was not successfully downloaded

See also

Notes

There is no difference between the commands imgfetch, module, and initrd.

When booting a Linux kernel, iPXE will construct a “magic initrd” by injecting downloaded files into the initial RAM filesystem image. Any argument supplied to the initrd command will be used as the pathname for that image within the initrd.magic initial RAM filesystem. For example, if you have the script

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

then the file initrd.img will be treated as a normal initramfs filesystem image, and the file deploy.sh will appear as an extra executable file /sbin/init within this filesystem.

The optional mode parameter can be used to change the file mode, which defaults to 644. This can be useful for binaries that need to be executed.

For older kernels (before Linux 5.7), you will need to add the kernel command-line argument initrd=initrd.magic when booting in UEFI mode.