diff options
author | James Bottomley <JBottomley@Parallels.com> | 2012-12-03 13:17:14 +0000 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-12-03 13:50:28 +0000 |
commit | 7bac4ef3c3e44def4765f6d7dc412714f4266195 (patch) | |
tree | 3505e836a6b6c12459dcfa2a7d825be093456924 | |
parent | 001de2e40e8d03fa7be4749c0919d7ff3660b5a0 (diff) | |
download | efitools-7bac4ef3c3e44def4765f6d7dc412714f4266195.tar.gz |
mkusb.sh: script to create a bootable USB image with the files
-rw-r--r-- | Makefile | 1 | ||||
-rwxr-xr-x | mkusb.sh | 37 |
2 files changed, 38 insertions, 0 deletions
@@ -17,6 +17,7 @@ install: all $(INSTALL) -m 755 $(EFIFILES) $(EFIDIR) $(INSTALL) -m 755 -d $(BINDIR) $(INSTALL) -m 755 $(BINARIES) $(BINDIR) + $(INSTALL) -m 755 mkusb.sh $(BINDIR)/efitool-mkusb $(INSTALL) -m 755 -d $(DOCDIR) $(INSTALL) -m 644 README COPYING $(DOCDIR) diff --git a/mkusb.sh b/mkusb.sh new file mode 100755 index 0000000..e1873ec --- /dev/null +++ b/mkusb.sh @@ -0,0 +1,37 @@ +#!/bin/sh +k=$1 +e=$2 +o=$3 +if [ $# -ne 3 ]; then + echo "Usage $0: key_dir efi_dir output_image_file" + exit 1; +fi +t=/var/tmp/tmpusb.$$.img +if [ ! -d "$k" ]; then + echo "Failed to find directory $k" + exit 1; +fi +if [ ! -d "$e" ]; then + echo "Failed to find directory $e" + exit 1; +fi + +dd if=/dev/zero of=${o} bs=512 count=102096 +parted ${o} "mktable gpt" +parted ${o} "mkpart p fat32 2048s 102049s" +parted ${o} "toggle 1 boot" +parted ${o} "name 1 UEFI" +dd if=/dev/zero of=${t} bs=512 count=100000 +mkfs -t vfat -n UEFI-Tools ${t} +mmd -i ${t} ::/EFI +mmd -i ${t} ::/EFI/BOOT +mmd -i ${t} ::/keys +mcopy -i ${t} ${k}/*.esl ::/keys +mcopy -i ${t} ${k}/*.auth ::/keys +mcopy -i ${t} ${e}/HashTool-signed.efi ::/EFI/BOOT/HashTool.efi +mcopy -i ${t} ${e}/KeyTool-signed.efi ::/EFI/BOOT/KeyTool.efi +mcopy -i ${t} ${e}/PreLoader-signed.efi ::/EFI/BOOT/BOOTX64.efi +mcopy -i ${t} ${e}/HelloWorld.efi ::/EFI/BOOT/loader.efi +dd if=${t} of=${o} bs=512 seek=2048 count=100000 +rm -f ${t} +exit 0; |