46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# Elevate script
|
|
if [ ! "$UID" -eq 0 ]
|
|
then
|
|
exec sudo bash "$0"
|
|
fi
|
|
|
|
# Create context directory
|
|
workingDirectory=$(pwd)
|
|
contextRoot=$(mktemp -d)
|
|
cd $contextRoot
|
|
|
|
# Initialize variables
|
|
esp=/boot/efi
|
|
defaultBootDir=$esp/EFI/BOOT
|
|
microsoftBootDir=$esp/EFI/Microsoft/Boot
|
|
|
|
systemdDirName=/EFI/systemd
|
|
systemdFullName=$esp$systemdDirName
|
|
systemdFile=$systemdFullName/systemd-bootx64.efi
|
|
|
|
loaderBaseName=loader.efi
|
|
systemdLoaderFile=$systemdFullName/$loaderBaseName
|
|
|
|
# Install PreLoader
|
|
wget https://blog.hansenpartnership.com/wp-uploads/2013/HashTool.efi
|
|
wget https://blog.hansenpartnership.com/wp-uploads/2013/PreLoader.efi
|
|
|
|
cp {HashTool,PreLoader}.efi $systemdFullName
|
|
cp $systemdFile $systemdLoaderFile
|
|
efibootmgr --unicode --disk /dev/nvme0n1 --part 0 --create --label "PreLoader" --loader $systemdDirName/PreLoader.efi
|
|
|
|
# Add fallbacks
|
|
cp ./HashTool.efi $defaultBootDir
|
|
cp $systemdFile $defaultBootDir/$loaderBaseName
|
|
cp ./PreLoader.efi $defaultBootDir/BOOTx64.EFI
|
|
|
|
# Add Microsoft fallbacks
|
|
mkdir -p $microsoftBootDir
|
|
cp ./PreLoader.efi $microsoftBootDir/bootmgfw.efi
|
|
cp ./HashTool.efi $microsoftBootDir
|
|
cp $systemdFile $microsoftBootDir/$loaderBaseName
|
|
|
|
# Remove context directory
|
|
cd $workingDirectory
|
|
rm -rf $contextRoot
|