直接从内存运行Fedora CoreOS
Fedora CoreOS现场环境是Fedora CoreOS的全功能副本。它可以通过Ignition、执行容器等进行自我配置。生活环境可以用来 将Fedora CoreOS安装到磁盘 ,还可以用来直接从内存运行Fedora CoreOS。
本指南展示了如何通过iso、pxe或ipxe引导瞬时Fedora CoreOS(FCOS)系统。有关实时ISO和PXE映像的更多信息,请参阅 实时图像参考 。
先决条件
在引导FCOS之前,您必须有一个Ignition配置文件。如果您没有,请参见 生成Ignition文件 。
如果您从PXE或iPXE启动,则必须在可访问的HTTP(S)或TFTP服务器上托管Ignition配置。引导实时PXE映像需要至少2 GiB的RAM coreos.live.rootfs_url
内核参数,否则为4 GiB。
通过ISO引导
实时ISO映像可以通过无人值守管理(LOM)固件从物理DVD光盘、USB闪存盘或虚拟CD驱动器引导。
要从ISO映像启动,请执行以下步骤:
-
下载ISO镜像:
podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \ quay.io/coreos/coreos-installer:release download -f iso
-
使用
coreos-installer iso customize
将您的Ignition配置嵌入到ISO映像中。例如,对于名为config.ign
:podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \ quay.io/coreos/coreos-installer:release iso customize --live-ignition config.ign \ -o customized.iso fedora-coreos-35.20220424.3.0-live.x86_64.iso
-
将ISO刻录到磁盘。在Linux和MacOS上,您可以使用
dd
。在Windows上,您可以使用 鲁弗斯 在“DD镜像”模式下。 -
在目标系统上引导它。
通过PXE引导
要从PXE启动,请执行以下步骤:
-
下载FCOS PXE内核、initramf和rootfs镜像:
podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \ quay.io/coreos/coreos-installer:release download -f pxe
-
请遵循下面的例子
pxelinux.cfg
要使用PXELINUX引导安装程序镜像并运行Ignition:
DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
KERNEL fedora-coreos-35.20220424.3.0-live-kernel-x86_64
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.firstboot ignition.platform.id=metal ignition.config.url=http://192.168.1.101/config.ign
IPAPPEND 2
通过iPXE引导
支持iPXE的机器需要提供相关的Boot脚本来获取和加载FCOS构件。
下面的例子展示了如何直接从Fedora基础设施加载这些文件。出于性能和可靠性的原因,建议将它们镜像到本地基础结构上,然后调整 BASEURL
视需要而定。
#!ipxe
set STREAM stable
set VERSION 35.20220424.3.0
set CONFIGURL https://example.com/config.ign
set BASEURL https://builds.coreos.fedoraproject.org/prod/streams/${STREAM}/builds/${VERSION}/x86_64
kernel ${BASEURL}/fedora-coreos-${VERSION}-live-kernel-x86_64 initrd=main coreos.live.rootfs_url=${BASEURL}/fedora-coreos-${VERSION}-live-rootfs.x86_64.img ignition.firstboot ignition.platform.id=metal ignition.config.url=${CONFIGURL}
initrd --name main ${BASEURL}/fedora-coreos-${VERSION}-live-initramfs.x86_64.img
boot
使用持久状态
默认情况下,Fedora CoreOS实时环境不会在磁盘上存储任何状态,并在每次引导时从头开始重新配置。但是,您可以选择在文件系统中存储一些持久状态(如容器映像),该文件系统在重新引导后仍然存在。例如,下面是一个Butane配置,它配置一个持久的 /var
:
variant: fcos
version: 1.1.0
storage:
disks:
- device: /dev/sda
wipe_table: true
partitions:
- label: var
filesystems:
- device: /dev/disk/by-partlabel/var
label: var
format: xfs
wipe_filesystem: false
path: /var
with_mount_unit: true
在引导活动环境时,每次引导时都会运行Ignition配置,因此它应该避免擦除您想要重复使用的Luk卷和文件系统。相反,应该配置这样的结构,以便在第一次引导时创建它们,并在后续引导时保留它们。
尤其要注意以下准则:
-
避免设置
wipe_filesystem
或wipe_volume
为 文件系统 或您打算重复使用的Luks卷。(您可以安全地设置wipe_table
或wipe_partition_entry
当重新使用磁盘时,因为它们不会修改 隔断 。) -
重新使用LUKS卷时,您必须配置
key_file
。Ignition不能重复使用带夹头的Luks体积。 -
避免将永久数据写入到RAID卷,因为Ignition不能重复使用这些数据。
-
在永久存储中写入文件时,设置
overwrite
至true
以避免在重新使用已具有该文件的文件系统时发生Ignition故障。避免使用append
指令,因为每次引导时都会发生追加。