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"
|
2023-08-13 18:44:20 -05:00
|
|
|
arch-chroot /mnt /usr/bin/bash /in-chroot.sh "${disk}"
|
|
|
|
|
rm /mnt/in-chroot.sh
|
|
|
|
|
|
|
|
|
|
reboot
|