diff --git a/lsinitrd.sh b/lsinitrd.sh
index b19a66a..7bb1188 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -92,15 +92,7 @@ if [[ $1 ]]; then
         exit 1
     fi
 else
-    [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
-
-    if [[ -d /boot/loader/entries || -L /boot/loader/entries ]] \
-        && [[ $MACHINE_ID ]] \
-        && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then
-        image="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd"
-    else
-        image="/boot/initramfs-${KERNEL_VERSION}.img"
-    fi
+    image="/boot/initrd.img-${KERNEL_VERSION}"
 fi
 
 shift
diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh
index da34e34..638280a 100755
--- a/mkinitrd-dracut.sh
+++ b/mkinitrd-dracut.sh
@@ -1,5 +1,5 @@
 #!/bin/bash --norc
-kver=$(uname -r)
+kernel_ver_dir='/var/lib/initramfs/kernel'
 
 boot_dir="/boot"
 quiet=0
@@ -48,63 +48,16 @@ read_arg() {
     fi
 }
 
-# Taken over from SUSE mkinitrd
+# For photon
 default_kernel_images() {
-    local regex kernel_image kernel_version version_version initrd_image
-    local qf='%{NAME}-%{VERSION}-%{RELEASE}\n'
-
-    case "$(uname -m)" in
-        s390|s390x)
-            regex='image'
-            ;;
-        ppc|ppc64)
-            regex='vmlinux'
-            ;;
-        i386|x86_64)
-            regex='vmlinuz'
-            ;;
-        arm*)
-            regex='[uz]Image'
-            ;;
-        aarch64)
-            regex='Image'
-            ;;
-        *)  regex='vmlinu.'
-            ;;
-    esac
+    local kernel_version
 
-    # user mode linux
-    if grep -q UML /proc/cpuinfo; then
-            regex='linux'
-    fi
+    for kernel_version in $(ls $kernel_ver_dir) ; do
+
+        # Take this directory as the source of truth
+        kernels="$kernels $kernel_version"
+        targets="$targets $boot_dir/initrd.img-$kernel_version"
 
-    kernel_images=""
-    initrd_images=""
-    for kernel_image in $(ls $boot_dir \
-            | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
-            | grep -v kdump$ ) ; do
-
-        # Note that we cannot check the RPM database here -- this
-        # script is itself called from within the binary kernel
-        # packages, and rpm does not allow recursive calls.
-
-        [ -L "$boot_dir/$kernel_image" ] && continue
-        [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
-        kernel_version=$(/usr/bin/get_kernel_version \
-                         $boot_dir/$kernel_image 2> /dev/null)
-        initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
-        if [ "$kernel_image" != "$initrd_image" -a \
-             -n "$kernel_version" -a \
-             -d "/lib/modules/$kernel_version" ]; then
-                kernel_images="$kernel_images $boot_dir/$kernel_image"
-                initrd_images="$initrd_images $boot_dir/$initrd_image"
-        fi
-    done
-    for kernel_image in $kernel_images;do
-	kernels="$kernels ${kernel_image#*-}"
-    done
-    for initrd_image in $initrd_images;do
-	targets="$targets $initrd_image"
     done
     host_only=1
     force=1
@@ -187,7 +140,7 @@ while (($# > 0)); do
 done
 
 [[ $targets && $kernels ]] || default_kernel_images
-[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage)
+[[ $targets && $kernels ]] || (error "No Kernel Registered")
 
 # We can have several targets/kernels, transform the list to an array
 targets=( $targets )
@@ -196,7 +149,6 @@ targets=( $targets )
 [[ $host_only == 1 ]] && dracut_args="${dracut_args} -H"
 [[ $force == 1 ]]     && dracut_args="${dracut_args} -f"
 
-echo "Creating: target|kernel|dracut args|basicmodules "
 for ((i=0 ; $i<${#targets[@]} ; i++)); do
 
     if [[ $img_vers ]];then
@@ -206,21 +158,27 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); do
     fi
     kernel="${kernels[$i]}"
 
+    if [[ -s "$kernel_ver_dir/$kernel" ]]; then
+        readarray -t kernel_cfg < <(xargs -n1 -a $kernel_ver_dir/$kernel)
+    else
+        kernel_cfg=()
+    fi
+
     # Duplicate code: No way found how to redirect output based on $quiet
     if [[ $quiet == 1 ]];then
-	echo "$target|$kernel|$dracut_args|$basicmodules"
+	echo "Creating $target"
 	if [[ $basicmodules ]]; then
-            dracut $dracut_args --add-drivers "$basicmodules" "$target" \
+            dracut $dracut_args --add-drivers "$basicmodules" "${kernel_cfg[@]}" "$target" \
 		"$kernel" &>/dev/null
 	else
-            dracut $dracut_args "$target" "$kernel" &>/dev/null
+            dracut $dracut_args "${kernel_cfg[@]}" "$target" "$kernel" &>/dev/null
 	fi
     else
 	if [[ $basicmodules ]]; then
-            dracut $dracut_args --add-drivers "$basicmodules" "$target" \
+            dracut $dracut_args --add-drivers "$basicmodules" "${kernel_cfg[@]}" "$target" \
 		"$kernel"
 	else
-            dracut $dracut_args "$target" "$kernel"
+            dracut $dracut_args "${kernel_cfg[@]}" "$target" "$kernel"
 	fi
     fi
 done