Changing stuff with pibootctl
The how of pibootctl
The what and the why of pibootctl
A quick review of the Ubuntu desktop flavours on the Raspberry Pi
Installing packages on first boot
How cloud-init talks to netplan to configure the network
A deeper look at user creation in cloud-init’s user-data file
Using cloud-init configuration to secure your first boot.