From c77167e8af511b6108eb43090e006263dc91e61a Mon Sep 17 00:00:00 2001 From: dalto Date: Mon, 22 Feb 2021 18:15:53 -0600 Subject: [PATCH] Add rebuild-initramfs script --- PKGBUILD | 5 ++++- src/usr/bin/rebuild-initramfs | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/usr/bin/rebuild-initramfs diff --git a/PKGBUILD b/PKGBUILD index 19f8743..d3c0b64 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,5 +1,5 @@ pkgname=eos-systemd-boot -pkgver=0.02 +pkgver=0.03 pkgrel=1 pkgdesc='Enables systemd-boot automation using kernel-install on EndeavourOS' arch=(any) @@ -14,6 +14,9 @@ package() # install the package files cp -a ${srcdir}/${pkgname}/src/usr ${pkgdir} + # set the permissions on the files in /usr/bin + chmod 755 ${pkgdir}/usr/bin/rebuild-initramfs + # mask the default loaderentry creator mkdir -p "${pkgdir}/etc/kernel/install.d" touch "${pkgdir}/etc/kernel/install.d/90-loaderentry.install" diff --git a/src/usr/bin/rebuild-initramfs b/src/usr/bin/rebuild-initramfs new file mode 100644 index 0000000..ce2eb33 --- /dev/null +++ b/src/usr/bin/rebuild-initramfs @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Rebuilds all the initramsfs in a systemd-boot system using kernel-install + +# Find the configured esp +esp=$(bootctl -p) + +# Prepare the efi partition for kernel-install +machineid=$(cat /etc/machine-id) +if [[ ${machineid} ]]; then + mkdir ${esp}/${machineid} +else + echo "Failed to get the machine ID" + exit +fi + +# Run kernel install for all the installed kernels +while read -r kernel; do + kernelversion=$(basename "${kernel%/vmlinuz}") + mkdir -p ${esp}/${machineid}/${kernelversion} + echo "Generating initramfs for kernel ${kernelversion}" + mkinitcpio -k ${kernelversion} -g ${esp}/${machineid}/${kernelversion}/initrd + echo "Generating fallback initramfs for kernel ${kernelversion}" + mkinitcpio -S autodetect -k ${kernelversion} -g ${esp}/${machineid}/${kernelversion}/initrd-fallback +done < <(find /usr/lib/modules -maxdepth 2 -type f -name vmlinuz)