summaryrefslogtreecommitdiff
path: root/config/binary_local-hooks/mkefipart-fat
blob: 3062d9a9a3230199147c0203bf45378f3c89761b (plain)
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
#! /bin/sh
# mkefipart-fat - written by Andreas Loibl <andreas@andreas-loibl.de>
# 
# Generate an image for a FAT-EFI-partition

case "$LB_BOOTLOADER" in
grub2|burg)
	;;
*)
	exit 0
	;;
esac


if [ ! -x /usr/bin/mmd ]; then
	echo "Error: mtools are needed! Run: apt-get install mtools"
	exit 1
fi

img=binary/boot.efi.img
[ "$1" ] && img="$1"
rm -f "$img"

# Stuff boot*.efi into a FAT filesystem, 
# (x+1023)/1024*1024 rounds up to multiple of MB.
mkfs.msdos -n KANOTIX_EFI -C "$img" \
	$(( ($(stat -c %s binary/efi/boot/boot*.efi | awk '{s+=$1} END {print s}') / 1024 + 1023) \
	    / 1024 * 1024 ))
mmd -i "$img" ::efi
mmd -i "$img" ::efi/boot
for file in binary/efi/boot/boot*.efi
do
	mcopy -i "$img" $file "::efi/boot/$(basename "$file")"
done

# hide the FAT-EFI-partition from the Mac Bootloader by f***ing up the "EFI" directory entry
sed -i -e '0,/EFI        /s/EFI        /EFI     \x0\x0\x0/' "$img"

exit 0