# 20210818 install fcos aarch64 builder Machines: Cavium specs: 48CPU 128GBRAM ~465gb ssd DISK Mustang specs: 8CPU 16GBRAM ~465gb ssd DISK A. Cavium, no serial, no network B. Cavium, serial connection, no network C. Mustang, serial connection, no network D. Mustang, serial + network --- ### PXE boot method download artifacts and generate a PXE grub config: ```bash version=34.20210901.20.0 ignition=https://dustymabe.fedorapeople.org/fcos-aarch64-builder.ign disk=sda baseurl="https://builds.coreos.fedoraproject.org/prod/streams/testing-devel/builds/${version}/aarch64" filesdir=/var/lib/tftpboot/ ip='8.43.85.80' gateway='8.43.85.254' netmask='255.255.255.0' interface='eth0' hostname='fcos-aarch64-builder' nameserver='8.8.8.8' pushd $filesdir for f in fedora-coreos-${version}-live-kernel-aarch64{,.sig} fedora-coreos-${version}-live-initramfs.aarch64.img{,.sig}; do curl -L -O "${baseurl}/${f}" done curl https://getfedora.org/static/fedora.gpg | gpg2 --import for f in *.sig; do gpg2 --verify $f done popd cat <<EOF >> $filesdir/grub2.cfg menuentry 'Install FCOS' { linuxefi ${filesdir}fedora-coreos-${version}-live-kernel-aarch64 coreos.live.rootfs_url=${baseurl}/fedora-coreos-${version}-live-rootfs.aarch64.img ignition.firstboot ignition.platform.id=metal console=ttyS0 coreos.inst.install_dev=/dev/${disk} coreos.inst.ignition_url=${ignition} net.ifnames=0 ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver} initrdefi ${filesdir}fedora-coreos-${version}-live-initramfs.aarch64.img } EOF ``` ----- ## Grub replacement method run this as root on the machine you want to replace: ```bash version=34.20210901.20.0 ignition=https://dustymabe.fedorapeople.org/fcos-aarch64-builder.ign disk=sda baseurl="https://builds.coreos.fedoraproject.org/prod/streams/testing-devel/builds/${version}/aarch64" bootroot=/ ip='8.43.85.80' gateway='8.43.85.254' netmask='255.255.255.0' interface='eth0' hostname='fcos-aarch64-builder' nameserver='8.8.8.8' pushd /boot/ for f in fedora-coreos-${version}-live-kernel-aarch64{,.sig} fedora-coreos-${version}-live-initramfs.aarch64.img{,.sig}; do curl -L -O "${baseurl}/${f}" done curl https://getfedora.org/static/fedora.gpg | gpg2 --import for f in *.sig; do gpg2 --verify $f done popd cat <<EOF >> /boot/efi/EFI/fedora/grub.cfg menuentry 'Install FCOS' --class red --class gnu-linux --class gnu --class os { load_video insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt2' linux ${bootroot}fedora-coreos-${version}-live-kernel-aarch64 coreos.live.rootfs_url=${baseurl}/fedora-coreos-${version}-live-rootfs.aarch64.img ignition.firstboot ignition.platform.id=metal console=ttyS0 coreos.inst.install_dev=/dev/${disk} coreos.inst.ignition_url=${ignition} net.ifnames=0 ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver} initrd ${bootroot}fedora-coreos-${version}-live-initramfs.aarch64.img } EOF ``` if the machine you're on uses BLS you can do something like this instead of appending to grub.cfg directly ``` cat <<EOF > /boot/loader/entries/fcos.conf title Install FCOS version ${version} linux ${bootroot}fedora-coreos-${version}-live-kernel-aarch64 initrd ${bootroot}fedora-coreos-${version}-live-initramfs.aarch64.img options coreos.live.rootfs_url=${baseurl}/fedora-coreos-${version}-live-rootfs.aarch64.img ignition.firstboot ignition.platform.id=metal console=ttyS0 coreos.inst.install_dev=/dev/${disk} coreos.inst.ignition_url=${ignition} net.ifnames=0 ip=${ip}::${gateway}:${netmask}:${hostname}:${interface}:none:${nameserver} EOF ```