---
# System prepended metadata

title: 20210818 install fcos aarch64 builder

---

# 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
```

