Files
ZFSBootMenu-Root-Install/partition.sh

97 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
baseDir="$(realpath "$(dirname "${0}")")"
source \
/etc/os-release
source \
"${baseDir}/system.conf"
if [[ "${1}" == '--disk' ]]; then
if [[ ! "${disk}" == **/dev/disk/by-id/** ]]; then
if [[ "${disk}" == **/dev/nvme** ]]; then
part3='p3'
else
part3='3'
fi
else
part3='-part3'
fi
swapoff \
--all
wipefs \
-a \
${disk}
if [[ ! "${diskType}" == 'HDD' ]]; then
blkdiscard \
-f \
${disk}
fi
sgdisk \
--zap-all \
${disk}
sgdisk \
-n1:0:+512M \
-t1:EF00 \
-c1:EFI \
${disk}
if [[ "${enableSwap}" == "yes" ]]; then
swapSize="$(((($(vmstat -sS M | grep 'total memory' | sed 's/ M total memory//') / 1024) + 1) * 2))"
if [[ "${swapSize#}" -gt '16' ]]; then
swapSize='16'
fi
sgdisk \
-n2:0:+${swapSize}G \
-t2:BF02 \
-c2:swap \
${disk}
fi
sgdisk \
-n3:0:0 \
-t3:BF00 \
-c3:${ID} \
${disk}
fi
if [[ "${1}" == '--efi' ]]; then
if [[ ! "${disk}" == **/dev/disk/by-id/** ]]; then
if [[ "${disk}" == **/dev/nvme** ]]; then
part1='p1'
else
part1='1'
fi
else
part1='-part1'
fi
mkdosfs \
-F 32 \
-s 1 \
-n EFI \
${disk}${part1}
mkdir \
-p \
/boot/efi
printf \
"/dev/disk/by-uuid/$(blkid -s UUID -o value ${disk}${part1}) /boot/efi vfat defaults 0 0\n" | \
tee --append /etc/fstab &> /dev/null
sleep 5
mount \
/boot/efi
fi