How to build raw disk images for Raspberry Pi
This guide will show how we can build a raw disk image that can be written to an SD-card and booted without any other installation media.
Any data on the SD-card will be erased, please only use a SD-card without anything important on it. The SD-card must be reasonably large (32 GB or more) and fast (!!). |
apiVersion: elemental.cattle.io/v1beta1
kind: SeedImage
metadata:
name: fire-img
namespace: fleet-default
spec:
type: raw
baseImage: registry.opensuse.org/isv/rancher/elemental/staging/containers/suse/sl-micro/6.0/baremetal-os-container:latest
targetPlatform: linux/arm64
registrationRef:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
name: fire-nodes
namespace: fleet-default
Check the logs for the build pod using:
kubectl logs -n fleet-default fire-img -f -c build
When the build is finished we can download the image file using wget:
wget --no-check-certificate $(kubectl get seedimage -n fleet-default fire-img -o jsonpath="{.status.downloadURL}") -O sle-micro.arm64.raw
Starting the machine
The raw disk image will only include the EFI partition, OEM partition and recovery partition. On first boot the system will boot into the recovery system to expand and add missing partitions. After expansion it will register with rancher and reboot.
If an error occurs during registration phase the journal can be found using
journalctl -u elemental-register-reset
.