--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -149,12 +149,18 @@ EOF
   fi
   if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then
     sed "s/^/$submenu_indentation/" << EOF
-	linux	${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
+	linuxefi	${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
 EOF
   else
+    if test -d /sys/firmware/efi; then
+    sed "s/^/$submenu_indentation/" << EOF
+	linuxefi	${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
+EOF
+    else
     sed "s/^/$submenu_indentation/" << EOF
 	linux	${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
 EOF
+    fi
   fi
   if test -n "${initrd}" ; then
     # TRANSLATORS: ramdisk isn't identifier. Should be translated.
@@ -164,9 +170,15 @@ EOF
 # 	echo	'$(echo "$message" | grub_quote)'
 #EOF
     fi
+    if test -d /sys/firmware/efi; then
+    sed "s/^/$submenu_indentation/" << EOF
+	initrdefi	${rel_dirname}/${initrd}
+EOF
+    else
     sed "s/^/$submenu_indentation/" << EOF
 	initrd	${rel_dirname}/${initrd}
 EOF
+    fi
   fi
   sed "s/^/$submenu_indentation/" << EOF
 }
