diff options
author | Franklyn Tackitt | 2020-01-30 14:41:47 -0700 |
---|---|---|
committer | Franklyn Tackitt | 2020-01-30 14:41:47 -0700 |
commit | c45e6f7b89dfae01b97f58b46bc3779ae3c89f4f (patch) | |
tree | b5c603329ab54a9c58ff6270c3dcd19db7b97808 /dracut-install | |
download | aur-c45e6f7b89dfae01b97f58b46bc3779ae3c89f4f.tar.gz |
Initial universal dracut-hook script
Diffstat (limited to 'dracut-install')
-rwxr-xr-x | dracut-install | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dracut-install b/dracut-install new file mode 100755 index 000000000000..205436ba6e56 --- /dev/null +++ b/dracut-install @@ -0,0 +1,38 @@ +#!/bin/bash -e + +kernels=() +all=0 + + +while read -r line; do + if [[ $line != */vmlinuz ]]; then + all=1 + continue + fi + + if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then + continue + fi + + install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}" + kernels+=("${pkgbase}") +done + +if (( all )); then + kernels=() + for file in /lib/modules/*/pkgbase; do + if read -r pkgbase > /dev/null 2>&1 < "$file"; then + kernels+=("${pkgbase}") + fi + done +fi + +for kernel in "${kernels[@]}"; do + pkgbase="$(grep -lE "^${kernel}\$" /lib/modules/*/pkgbase)" + modules=$(basename "${pkgbase%/pkgbase}") + + echo "Building dracut for $kernel - $modules" + + dracut -f -H --no-hostonly-cmdline "/boot/initramfs-${kernel}.img" "${modules}" + dracut -f -N "/boot/initramfs-${kernel}-fallback.img" "${modules}" +done |