use dostools instead of loopbacks to create efiboot

This commit is contained in:
Ward from fusion-voyager-3 2024-08-01 20:05:07 +03:00
parent f7e2450cb9
commit 10bdd41a8e
2 changed files with 12 additions and 11 deletions

2
.github/push-iso vendored
View File

@ -1 +1 @@
24
25

View File

@ -60,16 +60,17 @@ cp ./data/refind/refind_linux.conf \
# Generate bootable EFI Image from refind
dd if=/dev/zero of=disk.img bs=1M count=20
losetup --offset 1048576 --sizelimit 46934528 /dev/loop5 disk.img
mkfs.vfat /dev/loop5
mkdir -p /mnt/efi-disk
mount /dev/loop5 /mnt/efi-disk
mkdir -p /mnt/efi-disk/EFI
rsync -av ./data/refind/EFI/* /mnt/efi-disk/EFI/
mkisofs -o "$LIVE_BOOT_PATH/efiboot.img" /mnt/efi-disk/
umount -l /mnt/efi-disk
rm -rfv disk.img
dd if=/dev/zero of="$LIVE_BOOT_PATH/efiboot.img" bs=1M count=20
mkfs.msdos -F 16 "$LIVE_BOOT_PATH/efiboot.img"
for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-)
do
mmd -i "$LIVE_BOOT_PATH/efiboot.img" ::"$(echo $directory | tr '[:lower:]' '[:upper:]')"
done
for file in $(find ./data/refind/EFI/ -type f | cut -d'/' -f4-)
do
mcopy -i "$LIVE_BOOT_PATH/efiboot.img" $file ::"$(echo $file | tr '[:lower:]' '[:upper:]')"
done
# Create Bootable UEFI Full Image
mkdir -p ./output