/usr/sbin/ocs-gen-grub2-efi-bldr is in clonezilla 3.27.16-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | #!/bin/bash
# Author: Steven Shiau <steven _at_ nchc org tw>
# License: GPL
# Program to create the EFI boot loader from grub2
# Settings
# Load DRBL setting and functions
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"
. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions
efi_required_mod="part_gpt part_msdos normal chain boot configfile linux appleldr minicmd multiboot iso9660 acpi efi_gop efi_uga elf loadbios loopback video_fb usb search $GRUB_FS_MOD_drbl_ocs fixvideo png gfxterm gfxterm_background gfxterm_menu echo videotest video pci reboot halt gfxmenu gettext serial progress test sleep tr"
grub_required_files="/usr/share/grub/unicode.pf2"
# Functions
USAGE() {
  echo "To create an EFI boot loader from grub2."
  echo "Usage: $ocs OUTPUT_DIR"
  echo "OUTPUT_DIR is the where the created boot loader will be placed."
  echo "   E.g.  $ocs /tmp/efi/"
} # end of USAGE
#
#############
###  MAIN ###
#############
#
ocs=`basename $0`
check_if_root
#
while [ $# -gt 0 ]; do
 case "$1" in
   -*)     echo "${0}: ${1}: invalid option" >&2
           USAGE >& 2
           exit 2 ;;
   *)      break ;;
 esac
done
output_dir="$1"
# Checking
if [ ! -e /etc/debian_version ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "This is not a Debian/Ubuntu Linux system. This program only works on Debian/Ubuntu Linux system."
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "Program terminated!"
  exit 1
fi
if [ -z "$output_dir" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "No output dir! Program terminated!"
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  USAGE
  exit 1
fi
if [ ! -d "$output_dir" ]; then
  [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
  echo "The output dir \"$output_dir\" does not exist, or it's not a directory."
  [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  echo "Program terminated!"
  exit 1
fi
#
grub_efi_dir="$(mktemp -d /tmp/grub-efi.XXXXXX)"
for i in grub-efi-ia32 grub-efi-ia32-bin grub-efi-amd64 grub-efi-amd64-bin; do
  echo "Download $i from deb packages repository..."
  LC_ALL=C apt-get -d --reinstall -y install $i &>/dev/null
done
for i in /var/cache/apt/archives/grub-efi*.deb; do
  dpkg --extract $i $grub_efi_dir
done
# Prepare a grub.cfg so that the eltorito image could find it.
cat <<-GRUB_END > $grub_efi_dir/grub_head.cfg
search --file --set=root /.disk/info
set prefix=(\$root)/EFI/boot/
GRUB_END
# Check if xz compression is supported by grub-mkimage. If yes, use it. The prompt should look like:
# -C, --compression=(xz|none|auto)  choose the compression to use
grub_mkimg_compress_opt=""
if [ -n "$(LC_ALL=C grub-mkimage --help 2>&1 | grep -Ew -- "-C" | grep -iw xz)" ]; then
  # Even if grub-mkimage --help shows "-C xz" support, it still be possible that it actually lacks XZ support.
  # Ref: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692246
  # Therefore we test here. When #692246 is fixed, we can remove this testing.
  if LC_ALL=C grub-mkimage -C xz -O i386-efi -o /dev/null &>/dev/null; then
    grub_mkimg_compress_opt="-C xz"
  fi
fi
#
for i in i386 x86_64; do
  export EFI_ARCH=$i
  case "$EFI_ARCH" in
    i386)   out_f="$output_dir/bootia32.efi" ;;
    x86_64) out_f="$output_dir/bootx64.efi" ;;
  esac
  # Checking the required modules
  for im in $efi_required_mod; do
    if [ ! -e "$grub_efi_dir/usr/lib/grub/$EFI_ARCH-efi/${im}.mod" ]; then
      [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
      echo "Missing grub2 module ${im}.mod... Exluding ${im}.mod..."
      [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
      efi_required_mod="$(echo $efi_required_mod | sed -r -e "s/$im //g")"
    fi
  done
  grub-mkimage $grub_mkimg_compress_opt -O $EFI_ARCH-efi -d $grub_efi_dir/usr/lib/grub/$EFI_ARCH-efi/ -o $out_f --prefix=/EFI/boot/ -c $grub_efi_dir/grub_head.cfg $efi_required_mod
  rc=$?
  if [ "$rc" -gt 0 ]; then
    # When grub-mkimage fails, an empty output file will still be created. We'd better to clean it.
    rm -f $out_f
  fi
done
# Copy the required files, e.g. fonts to the output dir.
cp -a $grub_required_files $output_dir
# Clean the temp dir
if [ -e "$grub_efi_dir" -a -n "$(echo $grub_efi_dir | grep -E "grub-efi")" ]; then
  rm -rf $grub_efi_dir
fi
 |