freebsd-helpers/bootstick-uefi.sh

47 lines
1.5 KiB
Bash

. util.sh
helpers.help(){
echo "This script creates a UEFI-compatible bootstick containing /boot."
echo "This is used for installations where the built-in hardware *only*"
echo "contains encrypted data."
echo "This script takes no parameters."
}
helpers.checkhelp $1
echo "Loading config"
. config.sh
echo "NOTICE:"
echo " This will make destructive changes to $config_bootstick_device!"
echo " This will also mount and write over $config_bootstick_constructionsite!"
echo " Please make sure that:"
echo " * The USB stick you want to write to is $config_bootstick_device"
echo " * Nothing is currently mounted at /mnt"
echo ""
echo "Continue?"
if helpers.yesno
then
set -x
gpart destroy -F $config_bootstick_device
gpart create -s gpt $config_bootstick_device
gpart add -t efi -s 40M $config_bootstick_device
gpart add -t freebsd-ufs -s 1G $config_bootstick_device
newfs_msdos -F 32 -c 1 /dev/${config_bootstick_device}p1
mount -t msdosfs /dev/${config_bootstick_device}p1 $config_bootstick_constructionsite
mkdir -p ${config_bootstick_constructionsite}/EFI/BOOT
cp /boot/loader.efi ${config_bootstick_constructionsite}/EFI/BOOT/BOOTX64.efi
umount $config_bootstick_constructionsite
newfs -U /dev/${config_bootstick_device}p2
mount /dev/${config_bootstick_device}p2 $config_bootstick_constructionsite
cp -av /boot $config_bootstick_constructionsite
umount $config_bootstick_constructionsite
set +x
echo "Done!"
fi