Files

54 lines
1.3 KiB
Bash
Raw Permalink Normal View History

2023-08-13 18:44:20 -05:00
#!/usr/bin/env bash
#vim: set ft=bash:
set -ex
port="${1}" # HTTP port that packer is running on
2023-08-15 11:23:29 -05:00
host="${2}"
2023-08-13 18:44:20 -05:00
loadkeys en # Probably not necessary in a script, but here we are
if [ -e /dev/vda ]; then
disk="/dev/vda"
elif [ -e /dev/sda ]; then
disk="/dev/sda"
else
exit 1 # Need to teach the script which device to use in this case
fi
# The sed bit is just to strip out the extra fluff, like comments
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk ${disk}
2023-12-30 05:37:32 +00:00
g # create new GPT partition table
2023-08-13 18:44:20 -05:00
n # new
2023-12-30 05:37:32 +00:00
# default partition number
2023-08-13 18:44:20 -05:00
# default start
2023-12-30 05:37:32 +00:00
+512M # size
t # set type
1 # EFI system partition
n # second partition
# default partition number
# start at first free sector
2023-08-13 18:44:20 -05:00
# default to full disk
p # print, for debugging
w # write the partition table and exit
EOF
2023-08-22 00:18:02 -05:00
2023-08-13 18:44:20 -05:00
# Format and mount partitions
2023-12-30 05:37:32 +00:00
mkfs.vfat "${disk}1"
mkfs.ext4 "${disk}2"
2023-08-13 18:44:20 -05:00
2023-12-30 05:37:32 +00:00
mount "${disk}2" /mnt
mkdir -p /mnt/boot
mount "${disk}1" /mnt/boot
2023-08-13 18:44:20 -05:00
# Bootstrap system
2023-12-30 05:37:32 +00:00
pacstrap -K /mnt base linux nano sudo networkmanager openssh grub python3 efibootmgr
2023-08-13 18:44:20 -05:00
genfstab -L /mnt >> /mnt/etc/fstab
2023-12-30 05:37:32 +00:00
cat /mnt/etc/fstab
2023-08-13 18:44:20 -05:00
# Run stuff in the chroot
2023-08-15 11:23:29 -05:00
curl -o /mnt/in-chroot.sh "http://${host}:${port}/in-chroot.sh"
2025-01-22 14:42:50 -06:00
arch-chroot /mnt /usr/bin/bash /in-chroot.sh "${disk}" "$(systemd-detect-virt)"
2023-08-13 18:44:20 -05:00
rm /mnt/in-chroot.sh
reboot