97 lines
1.3 KiB
Bash
Executable File
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
|