diff --git a/.drone.yml b/.drone.yml index fe27fc9..edabbb7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -72,10 +72,12 @@ steps: - apt-get update - apt-get install -y live-build - apt-get install -y git + - apt-get install -y syslinux-efi - lb config - rm -r config - git clone --recurse-submodules -b testing https://tildegit.org/tildelinux/lb-config config - lb build + - config/sluefi.sh live-image-amd64.img - mv live-image-amd64.img /tl-builds/testing/tildelinux-testing.img - name: build_img_nopersist image: debian:buster diff --git a/sluefi.sh b/sluefi.sh new file mode 100755 index 0000000..eb8e315 --- /dev/null +++ b/sluefi.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# sluefi.sh - adds a syslinux efi bootloader to a live-build image + +[ "$(whoami)" != "root" ] && echo "You must be root to use this script." && exit + +image_name="$1" +[ -z $image_name ] && echo "Specify a disk image." && exit +! [ -f "$image_name" ] && echo "$image_name is not a file." && exit + +echo "Adding EFI support to $image_name..." + +loop_device="$(losetup --show -f -P $image_name)" +esp="$(mktemp -d)" + +mount -o loop "$loop_device"p1 "$esp" +mkdir -p "$esp/EFI/BOOT" +cp "/usr/lib/SYSLINUX.EFI/efi64/syslinux.efi" "$esp/EFI/BOOT/BOOTX64.efi" +cp "$esp/syslinux/"*.cfg "$esp/EFI/BOOT" +cp "$esp/syslinux/splash.png" "$esp/EFI/BOOT" +cp "/usr/lib/syslinux/modules/efi64/"* "$esp/EFI/BOOT" +echo "Done." +umount "$esp" +rmdir "$esp" +losetup -d "$loop_device"