#!/bin/bash set -euxo pipefail ARCH=$(uname -m) DEST=${2:-/tmp/esp.img} OS=${1:-sles} if [ $ARCH = "aarch64" ]; then BOOTEFI=BOOTAA64.EFI GRUBEFI=grubaa64.efi else BOOTEFI=BOOTX64.efi GRUBEFI=grubx64.efi fi dd bs=1024 count=6400 if=/dev/zero of=$DEST mkfs.msdos -F 12 -n 'ESP_IMAGE' $DEST mkdir -p /boot/efi/EFI/BOOT mkdir -p /boot/efi/EFI/$OS if [ $ARCH = "aarch64" ]; then cp -L /usr/share/efi/aarch64/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI cp -L /usr/share/efi/aarch64/grub.efi /boot/efi/EFI/BOOT/grub.efi cp /usr/share/grub2/arm64-efi/grub.efi /boot/efi/EFI/$OS/grubaa64.efi else cp -L /usr/lib64/efi/shim.efi /boot/efi/EFI/BOOT/$BOOTEFI #cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/$GRUBEFI cp /usr/share/grub2/x86_64-efi/grub.efi /boot/efi/EFI/$OS/grub.efi fi mmd -i $DEST EFI mmd -i $DEST EFI/BOOT mcopy -i $DEST -v /boot/efi/EFI/BOOT/$BOOTEFI ::EFI/BOOT if [ $ARCH = "aarch64" ]; then mcopy -i $DEST -v /boot/efi/EFI/BOOT/grub.efi ::EFI/BOOT mcopy -i $DEST -v /boot/efi/EFI/$OS/$GRUBEFI ::EFI/BOOT else mcopy -i $DEST -v /boot/efi/EFI/$OS/grub.efi ::EFI/BOOT fi mdir -i $DEST ::EFI/BOOT;