实时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,除非您有特殊要求,否则建议使用此方法。

  • 两者都指定 initramfsrootfs 文件在您的PXE配置中作为initrd。这可以通过多个 initrd 指令,或使用其他 initrd= 参数作为内核参数。这种方法比第一种方法慢,需要4GiB的RAM。

  • initramfsrootfs 文件放在一起,并将组合文件指定为initrd。这种方法速度较慢,需要4 GiB的RAM。

将Ignition配置传递给活动的PXE系统

当通过live PXE引导Fedora CoreOS时,内核命令行必须包含参数 ignition.firstboot ignition.platform.id=metal 来运行Ignition系统。如果在虚拟机中运行,请更换 metal平台ID 适用于您的平台,例如 qemuvmware

通过pxe引导Fedora CoreOS时,有几种方法可以传递Ignition配置:

  • 增列 ignition.config.url=<config-url> 添加到内核命令行。支持的URL方案包括 httphttpstftps3 ,及 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 customizecoreos-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