When the platform is EFI platform, use 'linuxefi' and 'initrdefi'
commands instead of 'linux' and 'initrd'.

Signed-off-by: Jia Zhang <zhang....@linux.alibaba.com>
Signed-off-by: Tianjia Zhang <tianjia.zh...@linux.alibaba.com>
---
 util/grub.d/10_linux.in | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index e8b01c0d0..8c5c3dab7 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -138,10 +138,17 @@ linux_entry ()
     fi
     printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
   fi
+  if [ "@GRUB_PLATFORM@" != "efi" ] ; then
+    linux_cmd="linux"
+    initrd_cmd="initrd"
+  else
+    linux_cmd="linuxefi"
+    initrd_cmd="initrdefi"
+  fi
   message="$(gettext_printf "Loading Linux %s ..." ${version})"
   sed "s/^/$submenu_indentation/" << EOF
        echo    '$(echo "$message" | grub_quote)'
-       linux   ${rel_dirname}/${basename} 
root=${linux_root_device_thisversion} ro ${args}
+       ${linux_cmd}    ${rel_dirname}/${basename} 
root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
     # TRANSLATORS: ramdisk isn't identifier. Should be translated.
@@ -152,7 +159,7 @@ EOF
     done
     sed "s/^/$submenu_indentation/" << EOF
        echo    '$(echo "$message" | grub_quote)'
-       initrd  $(echo $initrd_path)
+       ${initrd_cmd}   $(echo $initrd_path)
 EOF
   fi
   sed "s/^/$submenu_indentation/" << EOF
-- 
2.17.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to