2026-02-10 17:20:39 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
read -p "Hostname: " HOSTNAME
|
|
|
|
|
read -p "Username: " USERNAME
|
|
|
|
|
read -sp "User password: " PASS
|
|
|
|
|
read -sp "ROOT PASSWORD: " ROOT_PASS
|
|
|
|
|
read -sp "LUKS Passphrase: " LUKS_PASS
|
|
|
|
|
read -p "Main partition: " PART
|
|
|
|
|
|
|
|
|
|
parted -s "$PART" mklabel gpt
|
|
|
|
|
parted -s "$PART" mkpart primary fat32 1MiB 3GB
|
|
|
|
|
parted -s "$PART" set 1 esp on
|
|
|
|
|
parted -s "$PART" mkpart primary linux-swap 3GB 27GB
|
|
|
|
|
parted -s "$PART" mkpart primary ext4 27GB 100%
|
|
|
|
|
|
|
|
|
|
echo -n "$LUKS_PASS" | cryptsetup luksFormat --type luks2 --iter-time 5000 "${PART}3"
|
|
|
|
|
echo -n "$LUKS_PASS" | cryptsetup open "${PART}3" roothome
|
|
|
|
|
|
2026-02-10 17:27:58 +01:00
|
|
|
mkfs.fat -F 32 "${PART}1"
|
|
|
|
|
mkfs.ext4 /dev/mapper/roothome
|
2026-02-10 17:43:38 +01:00
|
|
|
mkswap "${PART}2"
|
2026-02-10 17:27:58 +01:00
|
|
|
|
|
|
|
|
mount /dev/mapper/roothome /mnt
|
|
|
|
|
mkdir -p /mnt/boot
|
|
|
|
|
mount "${PART}1" /mnt/boot
|
|
|
|
|
swapon "${PART}2"
|
|
|
|
|
|
2026-02-10 17:20:39 +01:00
|
|
|
pacstrap /mnt base linux linux-firmware
|
|
|
|
|
genfstab -U /mnt >> /mnt/etc/fstab
|
|
|
|
|
|
|
|
|
|
arch-chroot /mnt /bin/bash <<EOF
|
|
|
|
|
|
|
|
|
|
ln -sf /usr/share/zoneinfo/Area/Location /etc/localtime
|
|
|
|
|
hwclock --systohc
|
|
|
|
|
echo "$HOSTNAME" >> /etc/hostname
|
2026-02-10 17:43:38 +01:00
|
|
|
echo "KEYMAP=trq" >> /etc/vconsole.conf
|
2026-02-10 17:20:39 +01:00
|
|
|
|
|
|
|
|
pacman -S --noconfirm base-devel # base programs
|
2026-02-10 19:14:11 +01:00
|
|
|
pacman -S --noconfirm alsa-utils bluez bluez-utils bridge-utils networkmanager nvidia-open nvidia-utils pantum-universal-driver pavucontrol pipewire pipewire-alsa pipewire-jack pipewire-pulse polykit-gnome usbutils
|
|
|
|
|
pacman -S --noconfirm alacritty firefox eog flameshot keepassxc ly sway swaybg zip unzip
|
2026-02-10 17:20:39 +01:00
|
|
|
|
2026-02-10 19:14:11 +01:00
|
|
|
pacman -S --noconfirm ufw clamav
|
2026-02-10 17:20:39 +01:00
|
|
|
|
2026-02-10 19:14:11 +01:00
|
|
|
pacman -S --noconfirm cmake cloc code cppcheck emacs cups docker docker-compose efibootmgr gdb ghidra ghostscript git git-lfs libvirtman-db man-pages mkcert nasm net-tools openssh qemu-base qemu-full rustup valgrind virt-manager virt-viewer wireplumber wireguard-tools wireshark-qt wmenu wofi xdg-desktop-portal-gtk xdg-desktop-portal-wlr xorg-xwayland
|
2026-02-10 17:20:39 +01:00
|
|
|
|
|
|
|
|
systemctl enable NetworkManager
|
|
|
|
|
systemctl enable ufw
|
|
|
|
|
systemctl enable clamav-daemon
|
|
|
|
|
systemctl enable ly
|
2026-02-10 18:57:16 +01:00
|
|
|
systemctl disable getty@tty0.service
|
2026-02-10 17:20:39 +01:00
|
|
|
systemctl enable bluetooth
|
|
|
|
|
|
|
|
|
|
ufw default deny incoming
|
|
|
|
|
ufw default allow outgoing
|
|
|
|
|
ufw enable
|
|
|
|
|
|
2026-02-10 19:14:11 +01:00
|
|
|
sed -i 's/HOOKS=(base systemd autodetect microcode modconf kms keyboard keymap sd-vconsole block filesystems fsck)/HOOKS=(base systemd autodetect microcode modconf kms keyboard keymap sd-vconsole block sd-encrypt filesystems fsck)/' /etc/mkinitcpio.conf
|
2026-02-10 17:20:39 +01:00
|
|
|
mkinitcpio -P
|
|
|
|
|
|
2026-02-10 18:57:16 +01:00
|
|
|
echo -n "root:$ROOT_PASS" | chpasswd
|
2026-02-10 17:20:39 +01:00
|
|
|
|
|
|
|
|
bootctl install
|
|
|
|
|
|
2026-02-10 19:14:11 +01:00
|
|
|
printf "default arch.conf\ntimeout 3\nconsole-mode max\neditor no" >> /boot/loader/loader.conf
|
2026-02-10 17:20:39 +01:00
|
|
|
|
|
|
|
|
UUID=$(blkid -s UUID -o value "${PART}3")
|
|
|
|
|
|
2026-02-10 19:14:11 +01:00
|
|
|
printf "title Arch Linux\nlinux /vmlinuz-linux\ninitrd /initramfs-linux.img\noptions rd.luks.name=$UUID:roothome root=/dev/mapper/roothome rw" > /boot/loader/entries/arch.conf
|
2026-02-10 17:20:39 +01:00
|
|
|
|
|
|
|
|
EOF
|