#!/bin/bash -e all=0 lines=() while read -r line; do if [[ $line != */vmlinuz ]]; then # triggers when it's a change to dracut files all=1 continue fi pkgbase="$(<${line%/vmlinuz}/pkgbase)" install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}" lines+=(${line}) done if (( all )); then lines=(/usr/lib/modules/*/vmlinuz) fi for line in "${lines[@]}"; do folder="${line%/vmlinuz}" pkgbase="$(<${folder}/pkgbase)" kver="${folder##*/}" echo ":: Building initramfs for $pkgbase ($kver)" dracut --force --hostonly "/boot/initramfs-${pkgbase}.img" "${kver}" echo ":: Building fallback initramfs for $pkgbase ($kver)" dracut --force --no-hostonly "/boot/initramfs-${pkgbase}-fallback.img" "${kver}" done