实时ISO和PXE图像参考
有关直接从内存运行Fedora CoreOS的介绍,请参阅 资源调配指南 。
将PXE rootf传递给机器
Fedora CoreOS Pxe映像包括三个组件:a kernel
,一个 initramfs
,和一个 rootfs
。所有这三项都是必需的,没有它们,实时PXE环境将无法引导。
有多种方式可以传递 rootfs
到一台机器:
-
仅指定
initramfs
文件作为您的PXE配置中的initrd,并为rootfs
使用coreos.live.rootfs_url=
内核参数。此方法需要2 GiB的RAM,除非您有特殊要求,否则建议使用此方法。 -
两者都指定
initramfs
和rootfs
文件在您的PXE配置中作为initrd。这可以通过多个initrd
指令,或使用其他initrd=
参数作为内核参数。这种方法比第一种方法慢,需要4GiB的RAM。 -
将
initramfs
和rootfs
文件放在一起,并将组合文件指定为initrd。这种方法速度较慢,需要4 GiB的RAM。
将Ignition配置传递给活动的PXE系统
当通过live PXE引导Fedora CoreOS时,内核命令行必须包含参数 ignition.firstboot ignition.platform.id=metal
来运行Ignition系统。如果在虚拟机中运行,请更换 metal
与 平台ID 适用于您的平台,例如 qemu
或 vmware
。
通过pxe引导Fedora CoreOS时,有几种方法可以传递Ignition配置:
-
增列
ignition.config.url=<config-url>
添加到内核命令行。支持的URL方案包括http
,https
,tftp
,s3
,及gs
。 -
如果运行的是虚拟环境,请通过管理程序传递Ignition配置,就像从磁盘映像启动时一样。确保
ignition.platform.id
内核参数设置为 平台ID 适用于您的平台。 -
生成自定义版本的
initramfs
使用包含您的Ignition配置coreos-installer pxe customize
。例如,运行:coreos-installer pxe customize --live-ignition config.ign -o custom-initramfs.img \ fedora-coreos-35.20220424.3.0-live-initramfs.x86_64.img
-
如果您希望将Ignition配置与Fedora CoreOS分开
initramfs
图像中,使用低级别的coreos-installer pxe ignition wrap
命令,并将其作为额外的initrd传递。例如,运行:coreos-installer pxe ignition wrap -i config.ign -o ignition.img
然后使用PXELINUX
APPEND
类似以下内容的行:APPEND initrd=fedora-coreos-35.20220424.3.0-live-initramfs.x86_64.img,fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img,ignition.img ignition.firstboot ignition.platform.id=metal
将网络配置传递给实时ISO或PXE系统
在Fedora CoreOS上,网络通常通过以下方式配置 网络管理器密钥文件 。如果您的网络需要特殊配置,如静态IP地址,并且您的Ignition配置从网络获取资源,则不能简单地将这些密钥文件包括在Ignition配置中,因为这将创建循环依赖。
相反,您可以使用 coreos-installer iso customize
或 coreos-installer pxe customize
与 --network-keyfile
用于创建自定义ISO映像或PXE的选项 initramfs
在运行Ignition之前应用网络设置的图像。例如:
coreos-installer iso customize --network-keyfile custom.nmconnection -o custom.iso \
fedora-coreos-35.20220424.3.0-live.x86_64.iso
如果您正在进行PXE引导并希望将您的网络设置与Fedora CoreOS分开 initramfs
图像,您也可以使用较低级别的 coreos-installer pxe network wrap
命令创建一个单独的initrd映像,并将其作为附加的initrd传递。例如,运行:
coreos-installer pxe network wrap -k custom.nmconnection -o network.img
然后使用PXELINUX APPEND
类似以下内容的行:
APPEND initrd=fedora-coreos-35.20220424.3.0-live-initramfs.x86_64.img,fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img,network.img ignition.firstboot ignition.platform.id=metal
将内核参数传递给活动的ISO系统
如果要修改实时ISO系统的默认内核参数,可以使用 --live-karg-{append,replace,delete}
选项至 coreos-installer iso customize
。例如,如果要在不安全的CPU上启用同步多线程(SMT),则可以运行:
coreos-installer iso customize --live-karg-delete mitigations=auto,nosmt -o custom.iso \
fedora-coreos-35.20220424.3.0-live.x86_64.iso
从实时ISO图像中提取PXE伪影
如果您想要FedoraISOPXE构件,并且已经有了CoreOS映像,您可以从其中提取PXE构件:
podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
quay.io/coreos/coreos-installer:release iso extract pxe \
fedora-coreos-35.20220424.3.0-live.x86_64.iso
该命令将打印它提取的构件的路径。
使用最小ISO映像
在某些情况下,您可能希望在配备了无人值守管理(CoreOS)硬件的机器上引导FedoraLOM ISO映像。您可以将ISO作为虚拟CD映像上载到LOM控制器,但ISO可能比LOM控制器支持的大。
要避免此问题,您可以将ISO映像转换为较小的最小ISO映像 rootfs
。与PXE映像类似,最小ISO必须获取 rootfs
在引导过程中从网络发送。
假设您计划主办 rootfs
图像位于 https://example.com/fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img
。此命令将提取最小的ISO映像和 rootfs
从ISO图像中,嵌入 coreos.live.rootfs_url
具有正确URL的内核参数:
podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
quay.io/coreos/coreos-installer:release iso extract minimal-iso \
--output-rootfs fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img \
--rootfs-url https://example.com/fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img \
fedora-coreos-35.20220424.3.0-live.x86_64.iso \
fedora-coreos-35.20220424.3.0-live-minimal.x86_64.iso