diff options
| author | Philip J Freeman <elektron@halo.nu> | 2025-05-31 12:34:14 -0700 |
|---|---|---|
| committer | Philip J Freeman <elektron@halo.nu> | 2025-05-31 15:47:31 -0700 |
| commit | 34105077c777b0d2c5c69f39921f376b84ce1443 (patch) | |
| tree | 606152d6f739a0ee7fd8e5127e79b595f3fe8c85 /hooks/build-os/80-firstboot-repart-growfs | |
| parent | 5392080129b1093f36533e47c155f618c283ea57 (diff) | |
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.
<https://ostreedev.github.io/ostree/>
<https://www.nin.wiki/Halo_numbers>
Diffstat (limited to 'hooks/build-os/80-firstboot-repart-growfs')
| -rwxr-xr-x | hooks/build-os/80-firstboot-repart-growfs | 47 |
1 files changed, 47 insertions, 0 deletions
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} |
