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-post/20-ostree-kernel-mangle | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 hooks/build-os-post/20-ostree-kernel-mangle (limited to 'hooks/build-os-post/20-ostree-kernel-mangle') diff --git a/hooks/build-os-post/20-ostree-kernel-mangle b/hooks/build-os-post/20-ostree-kernel-mangle new file mode 100755 index 0000000..1e51905 --- /dev/null +++ b/hooks/build-os-post/20-ostree-kernel-mangle @@ -0,0 +1,22 @@ +#!/bin/bash -xe +set -o pipefail + +# Kernel mangling + +kver=$(ls -1 "${root:?}"/usr/lib/modules) + +# move kernel out of /boot into /usr/lib/modules/ +mv "${root:?}"/boot/vmlinuz-"$kver" "${root:?}"/usr/lib/modules/"$kver"/vmlinuz +mv "${root:?}"/boot/initrd.img-"$kver" "${root:?}"/usr/lib/modules/"$kver"/initramfs.img +mv "${root:?}"/boot/config-"$kver" "${root:?}"/usr/lib/modules/"$kver"/config +mv "${root:?}"/boot/System.map-"$kver" "${root:?}"/usr/lib/modules/"$kver"/System.map + +# remove kernel symlinks from root +rm "${root:?}"/vmlinuz* "${root:?}"/initrd.* + +khash=$(sha256sum "${root:?}"/usr/lib/modules/"$kver"/vmlinuz | awk '{print $1}') + +# add ostree style kernel links from /usr/lib/ostree-boot +mkdir -p "${root:?}"/usr/lib/ostree-boot +ln -s /usr/lib/modules/"$kver"/vmlinuz "${root:?}"/usr/lib/ostree-boot/vmlinuz-"$khash" +ln -s /usr/lib/modules/"$kver"/initramfs.img "${root:?}"/usr/lib/ostree-boot/initramfs-"$khash" -- cgit v1.2.3