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. --- build-os | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 build-os (limited to 'build-os') diff --git a/build-os b/build-os new file mode 100755 index 0000000..17f41bb --- /dev/null +++ b/build-os @@ -0,0 +1,50 @@ +#!/bin/bash -xe + +set -o pipefail + +. config +. sh-lib + +version=$( date +%Y%m%d.%H%M%S ) + +# Check for dependencies: +package_deps debootstrap + +function unmount_pseudo_filesystems(){ + set +e + for dir in dev sys proc; do umount -v "$root"/"$dir"; done + set -e +} + +function on_exit(){ + set +e + unmount_pseudo_filesystems +} +trap on_exit EXIT + +root="${roots:?}"/"$version" + +mkdir -p "$root" + +# bootstrap the OS + +debootstrap "$codename" "$root" + +for dir in /proc /sys /dev; do + mount --bind "$dir" "$root"/"$dir" +done + +export DEBIAN_FRONTEND=noninteractive +export version +export root +export osname +export osversion +export osdesc +export branch +export remote + +run-parts --exit-on-error -- hooks/build-os + +unmount_pseudo_filesystems + +run-parts --exit-on-error -- hooks/build-os-post -- cgit v1.2.3