#!/bin/bash COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" ret=0 case "$COMMAND" in add) INITRD_IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then # we found an initrd at the same place as the kernel # use this and don't generate a new one cp --reflink=auto "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/initrd" \ && chown root:root "$BOOT_DIR_ABS/initrd" \ && chmod 0600 "$BOOT_DIR_ABS/initrd" \ && exit 0 fi if [[ -f /etc/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline elif [[ -f /usr/lib/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline fi if ! [[ ${BOOT_OPTIONS[*]} ]]; then read -r -d '' -a BOOT_OPTIONS < /proc/cmdline fi unset noimageifnotneeded for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then noimageifnotneeded="yes" break fi done dracut ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS"/initrd "$KERNEL_VERSION" ret=$? ;; remove) rm -f -- "$BOOT_DIR_ABS"/initrd ret=$? ;; esac exit $ret