#!/bin/bash set -euo pipefail BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")" source \ /etc/os-release source \ "${BASEDIR}/system.conf" 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 '32' ]]; then swapSize='32' fi sgdisk \ -n2:0:+${swapSize}G \ -t2:BF02 \ -c2:swap \ ${disk} fi sgdisk \ -n3:0:0 \ -t3:BF00 \ -c3:${ID} \ ${disk} if [[ "${*}" == *--efi* ]]; then 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