Referência de imagem live ISO e PXE

Para uma introdução à execução do Fedora CoreOS diretamente da RAM, consulte o guia de provisionamento.

Passando o rootfs PXE para uma máquina

A imagem Fedora CoreOS PXE inclui três componentes: um kernel, um initramfs e um rootfs. Todos os três são obrigatórios e o ambiente PXE ativo não inicializará sem eles.

Existem várias maneiras de passar o rootfs para uma máquina:

  • Especifique apenas o arquivo initramfs como o initrd em sua configuração PXE e passe uma URL HTTP(S) ou TFTP para o rootfs usando o argumento do kernel coreos.live.rootfs_url=. Este método requer 2 GiB de RAM e é a opção recomendada, a menos que você tenha requisitos especiais.

  • Especifique os arquivos initramfs e rootfs como initrds em sua configuração PXE. Isso pode ser feito através de múltiplas diretivas initrd ou usando parâmetros initrd= adicionais como argumentos do kernel. Este método é mais lento que o primeiro método e requer 4 GiB de RAM.

  • Concatene os arquivos initramfs e rootfs e especifique o arquivo combinado como o initrd. Este método é mais lento e requer 4 GiB de RAM.

Passando uma configuração do Ignition para um sistema PXE ativo

Ao inicializar o Fedora CoreOS via PXE Live, a linha de comando do kernel deve incluir os argumentos ignition.firstboot ignition.platform.id=metal para executar o Ignition. Se estiver executando em uma máquina virtual, substitua metal pelo ID da plataforma da sua plataforma, como qemu ou vmware.

Existem várias maneiras de passar uma configuração do Ignition ao inicializar o Fedora CoreOS via PXE:

  • Adicione ignition.config.url=<config-url> à linha de comando do kernel. Os esquemas de URL suportados incluem http, https, tftp, s3 e gs.

  • Se estiver executando virtualizado, passe a configuração do Ignition por meio do hipervisor, exatamente como faria ao inicializar a partir de uma imagem de disco. Certifique-se de que o argumento de kernel ignition.platform.id esteja definido como ID da plataforma para sua plataforma.

  • Gere uma versão personalizada do initramfs contendo sua configuração do Ignition usando coreos-installer pxe customize. Por exemplo, execute:

    coreos-installer pxe customize --live-ignition config.ign -o custom-initramfs.img \
        fedora-coreos-39.20240225.3.0-live-initramfs.x86_64.img
  • Se você preferir manter a configuração do Ignition separada da imagem initramfs do Fedora CoreOS, gere um initrd separado com o comando de baixo nível coreos-installer pxe ignition wrap e passe-o como um initrd adicional. Por exemplo, execute:

    coreos-installer pxe ignition wrap -i config.ign -o ignition.img

    e então use uma linha APPEND do PXELINUX semelhante a:

    APPEND initrd=fedora-coreos-39.20240225.3.0-live-initramfs.x86_64.img,fedora-coreos-39.20240225.3.0-live-rootfs.x86_64.img,ignition.img ignition.firstboot ignition.platform.id=metal

Passando a configuração de rede para um sistema ISO ou PXE live

No Fedora CoreOS, a rede normalmente é configurada via NetworkManager keyfiles. Se sua rede exigir configuração especial, como endereços IP estáticos, e sua configuração do Ignition buscar recursos da rede, você não poderá simplesmente incluir esses arquivos-chave em sua configuração do Ignition, pois isso criaria uma dependência circular.

Em vez disso, você pode usar coreos-installer iso customize ou coreos-installer pxe customize com a opção --network-keyfile para criar uma imagem ISO personalizada ou imagem PXE initramfs que aplica suas configurações de rede antes de executar o Ignition. Por exemplo:

coreos-installer iso customize --network-keyfile custom.nmconnection -o custom.iso \
    fedora-coreos-39.20240225.3.0-live.x86_64.iso

Se você estiver inicializando PXE e quiser manter suas configurações de rede separadas da imagem initramfs do Fedora CoreOS, você também pode usar o comando de baixo nível coreos-installer pxe network wrap para criar uma imagem initrd separada e passar isso como um initrd adicional. Por exemplo, execute:

coreos-installer pxe network wrap -k custom.nmconnection -o network.img

e então use uma linha APPEND do PXELINUX semelhante a:

APPEND initrd=fedora-coreos-39.20240225.3.0-live-initramfs.x86_64.img,fedora-coreos-39.20240225.3.0-live-rootfs.x86_64.img,network.img ignition.firstboot ignition.platform.id=metal

Passando argumentos do kernel para um sistema ISO live

Se você deseja modificar os argumentos padrão do kernel de um sistema ISO live, você pode usar as opções --live-karg-{append,replace,delete} para coreos-installer iso customize. Por exemplo, se quiser ativar o multithreading simultâneo (SMT), mesmo em CPUs onde isso é inseguro, você pode executar:

coreos-installer iso customize --live-karg-delete mitigations=auto,nosmt -o custom.iso \
    fedora-coreos-39.20240225.3.0-live.x86_64.iso

Extraindo artefatos PXE de uma imagem ISO live

Se você deseja os artefatos PXE do Fedora CoreOS e já possui uma imagem ISO, você pode extrair os artefatos PXE dela:

podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
    quay.io/coreos/coreos-installer:release iso extract pxe \
    fedora-coreos-39.20240225.3.0-live.x86_64.iso

O comando imprimirá os caminhos para os artefatos extraídos.

Usando a imagem ISO mínima

Em alguns casos, você pode querer inicializar a imagem ISO do Fedora CoreOS em uma máquina equipada com hardware Lights-Out Management (LOM). Você pode fazer upload do ISO para o controlador LOM como uma imagem de CD virtual, mas o ISO pode ser maior do que o controlador LOM suporta.

Para evitar esse problema, você pode converter a imagem ISO em uma imagem ISO mínima menor sem o rootfs. Semelhante à imagem PXE, o ISO mínimo deve buscar o rootfs da rede durante a inicialização.

Suponha que você planeje hospedar a imagem rootfs em https://example.com/fedora-coreos-39.20240225.3.0-live-rootfs.x86_64.img. Este comando extrairá uma imagem ISO mínima e um rootfs de uma imagem ISO, incorporando um argumento de kernel coreos.live.rootfs_url com a URL correta:

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-39.20240225.3.0-live-rootfs.x86_64.img \
    --rootfs-url https://example.com/fedora-coreos-39.20240225.3.0-live-rootfs.x86_64.img \
    fedora-coreos-39.20240225.3.0-live.x86_64.iso \
    fedora-coreos-39.20240225.3.0-live-minimal.x86_64.iso