下载镜像¶
语法¶
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。
命令状态¶
| 成功 | 镜像下载成功 |
|---|---|
| 失败 | 镜像未能成功下载 |
另请参阅¶
imgstatchainkernelimgfree- 全部 iPXE 命令列表
备注¶
imgfetch、module 和 initrd 三个命令之间没有任何区别。
引导 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。