Thanks @LeandroStanger but I’m already aware of the default install method via USB.
I’m wanting to know how to deploy Endless to multiple different devices with additional packages pre-installed (without having to install packages manually on each device).
e.g.
Install Endless OS on master PC
Install additional packages
Take image of master PC
Deploy image to multiple PCs
However I don’t think you can just clone a Linux image to different hardware can you?
@JTP We don’t really have a supported way to do this at the moment, but if you clone the hard disk image it should work on other hardware. A few things you’d need to know:
The Endless OS installation process essentially just images the hard disk (like dd).
Endless OS, when it is first booted, resizes its root partition to fill free space on the disk. If you wanted to go down this road, you’d need to make your “master” image on the smallest hard disk you want to support. You can trigger this repartitioning behaviour on a subsequent boot by setting flag 55 on the ostree partition (the syntax for sfdisk is attrs=GUID:55 on the relevant partition).
You’d also want to use a machine with EFI firmware (not BIOS) to create your master image. At the end of the installation process, if the current machine has a BIOS, the reformatter converts the partition table from GPT to MBR, rendering it unbootable on EFI machines. We do this because some BIOSes can’t boot the unmodified image, but may (most?) can.
You should randomize /etc/machine-id on each machine. The easiest way to do this is to delete it from your disk image.
There may be other machine-specific identifiers that should be randomised that I haven’t thought of. (The first-boot repartitioning script randomises the GUIDs in the partition table.)