X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=50-dracut.install;h=bbb73442b7e12ee4c82fc14616541a001d4d7503;hb=58e0d2d5b5b3a5e7d6dbf74baa2f08f041de5a81;hp=54c71d4ec5bd59a0b8b6741afbbc81e9f558d3c8;hpb=39c725dc4e3c12324823112c17b79aceec9ffd8b;p=thirdparty%2Fdracut.git diff --git a/50-dracut.install b/50-dracut.install index 54c71d4ec..bbb73442b 100755 --- a/50-dracut.install +++ b/50-dracut.install @@ -5,6 +5,19 @@ KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" +# If KERNEL_INSTALL_MACHINE_ID is defined but empty, BOOT_DIR_ABS is a fake directory. +# So, let's skip to create initrd. +if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then + exit 0 +fi + +if [[ -d "$BOOT_DIR_ABS" ]]; then + INITRD="initrd" +else + BOOT_DIR_ABS="/boot" + INITRD="initramfs-${KERNEL_VERSION}.img" +fi + ret=0 case "$COMMAND" in add) @@ -12,9 +25,9 @@ case "$COMMAND" in 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" \ + 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 @@ -36,11 +49,11 @@ case "$COMMAND" in break fi done - dracut ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS"/initrd "$KERNEL_VERSION" + dracut -f ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION" ret=$? ;; remove) - rm -f -- "$BOOT_DIR_ABS"/initrd + rm -f -- "$BOOT_DIR_ABS/$INITRD" ret=$? ;; esac