50 lines
No EOL
1.6 KiB
Bash
Executable file
50 lines
No EOL
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
read -r -p "Seed device(/dev/vda1): " seed_device
|
|
read -r -p "Sprout device(/dev/vda2): " sprout_device
|
|
read -r -p "EFI device(/dev/vda3): " efi_device
|
|
if [[ -z "$seed_device" ]]; then
|
|
seed_device="vda1"
|
|
fi
|
|
if [[ -z "$sprout_device" ]]; then
|
|
sprout_device="vda2"
|
|
fi
|
|
if [[ -z "$efi_device" ]]; then
|
|
efi_device="vda3"
|
|
fi
|
|
echo "Seed device: /dev/$seed_device"
|
|
echo "Sprout device: /dev/$sprout_device"
|
|
echo "EFI device: /dev/$efi_device"
|
|
read -r -p "Are you sure? (y,N): " response
|
|
if [[ "$response" != "y" && "$response" != "Y" ]]; then
|
|
echo "Aborting."
|
|
exit 1
|
|
fi
|
|
mkfs.btrfs -f -L SEED /dev/$seed_device
|
|
mkfs.btrfs -f -L SPRUT /dev/$sprout_device
|
|
mkfs.fat -F 32 -n EFI /dev/$efi_device
|
|
echo "Filesystems created successfully."
|
|
mount -o subvol=/ /dev/vda1 /mnt
|
|
btrfs su cr /mnt/@
|
|
umount -R /mnt
|
|
mount -o subvol=/@ /dev/vda1 /mnt
|
|
# ask user to input packages to install
|
|
read -r -p "Enter packages to install (space-separated): " packages_input
|
|
# convert input string to array
|
|
packages=($packages_input)
|
|
if [[ ${#packages[@]} -eq 0 ]]; then
|
|
$packages=("base" "linux" "linux-firmware" "vim" "git" "networkmanager" "btrfs-progs" "efibootmgr" "grub" "os-prober" "base-devel" "sudo")
|
|
echo "No packages specified. Defaulting to: ${packages[@]}"
|
|
else
|
|
echo "The following packages will be installed: ${packages[@]}"
|
|
fi
|
|
read -r -p "Continue with installation? (Yes/no): " response
|
|
if [[ "$response" == "n" || "$response" == "N" ]]; then
|
|
echo "Aborting."
|
|
exit 1
|
|
fi
|
|
pacstrap -K /mnt ${packages[@]}
|
|
mount -m /dev/vda3 /mnt/efi
|
|
genfstab -U /mnt > /mnt/etc/fstab
|
|
arch-chroot /mnt |