Index: boot/grub/meson.build
===================================================================
--- boot/grub/meson.build	(revision 807be7ee42522e194eac3944cc4b65503a2f8c26)
+++ boot/grub/meson.build	(revision 145a13b720625fa3339311792a3a0793509d1d18)
@@ -108,5 +108,9 @@
 	genisoimage_args = [ '-eltorito-boot', grub_image, '-no-emul-boot', '-boot-info-table' ]
 elif GRUB_ARCH == 'efi'
-	genisoimage_args = [ '--efi-boot', grub_image ]
+	if genisoimage_type == 'mkisofs'
+		genisoimage_args = [ '-eltorito-platform', 'efi', '-eltorito-boot', grub_image, '-no-emul-boot' ]
+	else
+		genisoimage_args = [ '--efi-boot', grub_image ]
+	endif
 endif
 
Index: meson/part/tools/meson.build
===================================================================
--- meson/part/tools/meson.build	(revision 807be7ee42522e194eac3944cc4b65503a2f8c26)
+++ meson/part/tools/meson.build	(revision 145a13b720625fa3339311792a3a0793509d1d18)
@@ -62,16 +62,18 @@
 
 genisoimage = find_program('genisoimage', required: false)
-
-if not genisoimage.found()
+if genisoimage.found()
+	genisoimage_type = 'genisoimage'
+else
 	genisoimage = find_program('mkisofs', required: false)
-endif
-
-if not genisoimage.found()
-	xorriso = find_program('xorriso', required: false)
-
-	if xorriso.found()
-		genisoimage = [ xorriso, '-as', 'genisoimage' ]
+	if genisoimage.found()
+		genisoimage_type = 'mkisofs'
 	else
-		error('Need genisoimage, mkisofs or xorriso.')
+		xorriso = find_program('xorriso', required: false)
+		if xorriso.found()
+			genisoimage = [ xorriso, '-as', 'genisoimage' ]
+			genisoimage_type = 'genisoimage'
+		else
+			error('Need genisoimage, mkisofs or xorriso.')
+		endif
 	endif
 endif
