#!/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 '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} elif [[ "${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