From 34105077c777b0d2c5c69f39921f376b84ce1443 Mon Sep 17 00:00:00 2001 From: Philip J Freeman Date: Sat, 31 May 2025 12:34:14 -0700 Subject: Deploying a demo amd64 debian-based OS via ostree This is a prototype outline for building and deploying a debian based OS with ostree. For purposes of demonstration, the OS runs from a bootable USB device on a UEFI capable amd64 machine. Once a USB device is created and booted, the OS can be updated using a simple shell script. --- hooks/build-os/80-firstboot-repart-growfs | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 hooks/build-os/80-firstboot-repart-growfs (limited to 'hooks/build-os/80-firstboot-repart-growfs') diff --git a/hooks/build-os/80-firstboot-repart-growfs b/hooks/build-os/80-firstboot-repart-growfs new file mode 100755 index 0000000..78648cc --- /dev/null +++ b/hooks/build-os/80-firstboot-repart-growfs @@ -0,0 +1,47 @@ +#!/bin/bash -xe + +set -o pipefail + +# Configure systemd-growfs-root +mkdir "${root:?}"/etc/systemd/system/systemd-growfs-root.service.d + +cat > "${root:?}"/etc/systemd/system/systemd-growfs-root.service.d/override.conf << EOF +[Unit] +ConditionFirstBoot=yes + +[Service] +ExecStart=/usr/lib/systemd/systemd-growfs /sysroot + +[Install] +WantedBy=multi-user.target +EOF + +chroot "${root:?}" systemctl enable systemd-growfs-root.service + +# Configure systemd-repart + +mkdir "${root:?}"/etc/repart.d + +cat > "${root:?}"/etc/repart.d/50-root.conf << EOF +[Partition] +Type=linux-generic +GrowFileSystem=yes +EOF + +chroot "${root:?}" apt-get install -y systemd-repart + +# Configure systemd-firstboot + +mkdir "${root:?}"/etc/systemd/system/systemd-firstboot.service.d +cat > "${root:?}"/etc/systemd/system/systemd-firstboot.service.d/install.conf << EOF +[Service] +ExecStart= +ExecStart=/usr/bin/systemd-firstboot --prompt + +[Install] +WantedBy=sysinit.target +EOF + +chroot "${root:?}" systemctl enable systemd-firstboot.service + +rm "${root:?}"/etc/{machine-id,localtime} -- cgit v1.2.3