archinstall/modules/00-prechroot/10-disk.sh
2025-10-03 10:10:06 +00:00

42 lines
1 KiB
Bash

#!/bin/bash
#shellcheck disable=SC2154
sgdisk -Z \
-n '0:0:+512M' -t '0:ef00' -c '0:esp' \
-n '0:0:0' -t '0:8300' -c '0:root' \
"$disk"
esp=/dev/disk/by-partlabel/esp
root=/dev/disk/by-partlabel/root
if [ -n "$disk_passwd" ]; then
echo -n "$disk_passwd" | cryptsetup luksFormat "$root" -
cryptsetup open "$root" root - <<< "$disk_passwd"
root=/dev/mapper/root
fi
while ! [ -e "$root" ] || ! [ -e "$esp" ]; do
echo 'waiting for /dev/disk/by-partlabel/ to be populated' >&2
sleep 1
done
mkfs.vfat -F32 "$esp"
mkfs.ext4 -F "$root"
mount "$root" /mnt/
mount -m "$esp" /mnt/efi/
mkdir -p /mnt/etc/ /mnt/efi/EFI/Linux/
cat <<EOF > /mnt/etc/fstab
UUID=$(blkid "$root" -ovalue -sUUID) / ext4 rw,relatime 0 1
UUID=$(blkid "$esp" -ovalue -sUUID) /efi vfat rw,fmask=0077,dmask=0077 0 2
EOF
if [ -n "$swapfile" ]; then
dd if=/dev/zero of=/mnt/swapfile bs=1M count="$swapfile" status=progress
chmod 600 /mnt/swapfile
mkswap /mnt/swapfile
echo "/swapfile none swap defaults 0 0" >> /mnt/etc/fstab
fi
cp -rfTv rootfs/ /mnt/