summaryrefslogtreecommitdiff
path: root/hooks/build-os-post/20-ostree-kernel-mangle
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/build-os-post/20-ostree-kernel-mangle')
-rwxr-xr-xhooks/build-os-post/20-ostree-kernel-mangle22
1 files changed, 22 insertions, 0 deletions
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"