Untitled

 avatar
unknown
plain_text
3 years ago
2.7 kB
4
Indexable
#!/usr/bin/env bash
# Function
installpkg(){ pacman --noconfirm --needed -S "$1" >/dev/null 2>&1 ;}
# Variables
MOUNTPOINT="/mnt"
BOOT_PARTITION="/dev/sda1"
ROOT_PARTITION="/dev/sda2"
USERNAME="farhan"
ISO="GB"
DISK="/dev/sda"
PARTITION_PARTUUID=$(blkid -s PARTUUID -o value "$ROOT_PARTITION")
# Package list
PACKAGES=(
    "base" 
    "linux"
    "linux-firmware"
    "intel-ucode"
    "neovim"
    "sudo" 
    "neovim" 
    "efibootmgr"
    "wget"
    "git"
    "dhclient" 
    "networkmanager"
    )
# Command list
COMMANDS=(
    "hwclock --systohc"
    "ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime"
    "locale-gen"
    "systemctl enable NetworkManager"
    "useradd -m -g wheel -s /bin/bash $USERNAME"
)
password() {
    read -rs -p "Please enter password: " PASSWORD1
    echo -ne "\n"
    read -rs -p "Please re-enter password: " PASSWORD2
    echo -ne "\n"
    if [[ "$PASSWORD1" == "$PASSWORD2" ]]; then
        PASSWORD=PASSWORD1
    else
        echo "password does not match"
        password
    fi
}
timedatectl set-ntp true
loadkeys uk
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.back
sed -i "s/^#Para/Para/;s/^#Color$/Color/" /etc/pacman.conf
for x in archlinux-keyring reflector rsync; do
	installpkg "$x"
done
reflector --age 48 --country "$ISO" -f 5 --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
sgdisk -n 1::+300M --typecode=1:ef00 --change-name=1:"EFI" "$DISK"
sgdisk -n 2::-0 --typecode=2:8300 --change-name=2:"ROOT" "$DISK"
mkfs.vfat -F 32 -n "EFI" "$BOOT_PARTITION"
mkfs.ext4 -L ROOT "$ROOT_PARTITION"
mount "$ROOT_PARTITION" "$MOUNTPOINT"
mkdir "$MOUNTPOINT"/boot
mount -t vfat -L EFI "$MOUNTPOINT"/boot
pacstrap "$MOUNTPOINT" "${PACKAGES[@]}" --noconfirm --needed
cp /etc/pacman.d/mirrorlist "$MOUNTPOINT"/etc/pacman.d/mirrorlist
sed -i 's/^# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' "$MOUNTPOINT"/etc/sudoers
sed -i 's/^#en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' "$MOUNTPOINT"/etc/locale.gen
echo "KEYMAP=uk" >"$MOUNTPOINT"/etc/vconsole.conf
echo "Arch" >"$MOUNTPOINT"/etc/hostname
echo "LANG=en_GB.UTF-8" >"$MOUNTPOINT"/etc/locale.conf
echo "127.0.0.1 localhost Arch" >>"$MOUNTPOINT"/etc/hosts
 echo "::1 localhost Arch" >>"$MOUNTPOINT"/etc/hosts
i=0
while [ "$i" -lt "${#COMMANDS[@]}" ]; do
    arch-chroot /mnt /usr/bin/runuser -u root -- "${COMMANDS[$i]}"
done
arch-chroot /mnt /usr/bin/runuser -u root -- echo "$USERNAME:$PASSWORD" | chpasswd
genfstab -U "$MOUNTPOINT" >> "$MOUNTPOINT"/etc/fstab
umount "$MOUNTPOINT"/boot
umount "$MOUNTPOINT"
efibootmgr --disk "$DISK" --part 1 --create --label "Arch" --loader "/vmlinuz-linux" --unicode "root=PARTUUID=$PARTITION_PARTUUID rw initrd=\intel-ucode.img initrd=\initramfs-linux.img"
echo "-=Done=-"
Editor is loading...