Configure our Pre-Install eviroment
timedatectl set-ntp truegdisk to partition harddrive
mkfs.fat -F16 -n UEFISYS /dev/${BOB_UEFI};mkfs.btrfs -f -L btrfsroot /dev/${BOB_ROOT};mkfs.ext4 -L root /dev/${BOB_ROOT};mkfs.ext4 -L home /dev/${BOB_HOME};btrfs subvolume create /btrfs/@archlinux/home;mount -o rw,noatime,compress=zstd,ssd,space_cache=v2,subvol=@archlinux/root LABEL="btrfsroot" /mnt;mkdir /mnt/{boot,efi,home,var};mount -o fmask=0077,dmask=0077 LABEL="UEFISYS" /mnt/efi;mount -o rw,noatime,compress=zstd,ssd,space_cache=v2,subvol=@archlinux/var LABEL="btrfsroot" /mnt/varmount -o rw,noatime,compress=zstd,ssd,space_cache=v2,subvol=@archlinux/home LABEL="btrfsroot" /mnt/home;mount LABEL=home -o rw,noatime,errors=remount-ro,data=ordered /mnt/home;pacstrap /mnt \
base linux linux-firmware mkinitcpio linux-headers \
base-devel git bash-completion sudo pacman-contrib openssh \
gptfdisk btrfs-progs dosfstools cifs-utils mtools ntfs-3g fuse \
smbclient nmap wget mtr whois traceroute bind bridge-utils iptraf-ng net-tools \
mc neovim tmux p7zip zip unrar \
man-db \
htop iotop usbutils lm_sensors \
amd-ucode \
intel-ucode \
reflector
less
nano
polkitgenfstab -p -L /mnt >> /mnt/etc/fstab
fmask=0077,dmask=0077 for systemd-boot
random seed to be securecat /mnt/etc/fstabchroot into the new system
Set hostname
Basic configuration
ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime;
sed -i 's/#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen;
locale-gen;
echo LANG=en_US.UTF-8 > /etc/locale.conf;
echo "set colored-stats on" >> /etc/inputrc;
sed -i 's/MODULES=()/MODULES=(btrfs vfat)/' /etc/mkinitcpio.conf;
mkinitcpio -p linux;
sed -i 's/#Color/Color/' /etc/pacman.conf;
sed -i 's/#CleanMethod = KeepInstalled/CleanMethod = KeepCurrent/' /etc/pacman.conf;
sed -i "s/#MAKEFLAGS=\"-j2\"/MAKEFLAGS=\"-j\${nproc}\"/" /etc/makepkg.conf
sed -i 's/^OPTIONS=.*/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)/' /etc/makepkg.conf
sed -i "s/#SystemMaxUse=/SystemMaxUse=32M/" /etc/systemd/journald.conf
sed -i "s/#Storage=/Storage=none/" /etc/systemd/coredump.conf
sed -i "s/#ProcessSizeMax=/ProcessSizeMax=0/" /etc/systemd/coredump.confConfigure pacman hooks
mkdir -p /etc/pacman.d/hooks/;
cat >> /etc/pacman.d/hooks/cleanafterinstall.hook << EOF
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache --remove --keep 0
EOFmkdir -p /etc/pacman.d/hooks/;
cat >> /etc/pacman.d/hooks/mirrorupgrade.hook << EOF
[Trigger]
Operation = Upgrade
Type = Package
Target = pacman-mirrorlist
[Action]
Description = Updating pacman-mirrorlist with reflector and removing pacnew...
When = PostTransaction
Depends = reflector
Exec = /usr/bin/env sh -c "reflector --latest 100 --age 12 --fastest 20 --sort rate --threads 10 --country SE,NL,DE,NO,PL,GB,US,DK --save /etc/pacman.d/mirrorlist; if [[ -f /etc/pacman.d/mirrorlist.pacnew ]]; then rm /etc/pacman.d/mirrorlist.pacnew; fi"
EOFServices
systemctl enable systemd-networkd;
cat >> /etc/systemd/network/lan.network << EOF
[Match]
Name=en*
[Network]
DHCP=ipv4
LinkLocalAddressing=no
LLMNR=no
MulticastDNS=no
DNSSEC=no
IPv6AcceptRA=no
[DHCPv4]
UseDNS=Yes
UseDomains=Yes
UseHostname=false
RouteMetric=1
EOF
systemctl enable systemd-resolved;
systemctl enable btrfs-scrub@-.timer;Configure root/users
mkdir /root/.ssh/;
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHpKI6RVc61NGEmN7mJKqbsHq5Nv3FSQSE2o5JUMWXv vociferous@skylake" >> /root/.ssh/authorized_keys;
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKb66uTmD0AhtankAHfHA1y3cGoN5MQnQbKRVJCcOMyU vociferous@anoia" >> /root/.ssh/authorized_keys;
chmod 600 /root/.ssh/authorized_keys;
passwd;useradd -m -u 1000 -G wheel,log -s /bin/bash vociferous;
mkdir /home/vociferous/.ssh/;
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHpKI6RVc61NGEmN7mJKqbsHq5Nv3FSQSE2o5JUMWXv vociferous@skylake" >> /home/vociferous/.ssh/authorized_keys;
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKb66uTmD0AhtankAHfHA1y3cGoN5MQnQbKRVJCcOMyU vociferous@anoia" >> /home/vociferous/.ssh/authorized_keys;
chmod 700 /home/vociferous/.ssh;
chmod -R 600 /home/vociferous/.ssh/*;
chown -R vociferous:vociferous /home/vociferous/.ssh;
passwd vociferous;sudo
systemd-boot
mkdir -p /efi/loader/entries/;
cat >> /efi/loader/entries/99-arch.conf << EOF
title Arch Linux (LABEL)
linux /EFI/arch/vmlinuz-linux
initrd /EFI/arch/initramfs-linux.img
initrd /EFI/arch/amd-ucode.img
options root=LABEL=btrfsroot rw rootflags=subvol=@archlinux/root
EOF
bootctl install;
sed -i 's/#timeout 3/timeout 2/' /efi/loader/loader.conf;disable tty1 clearing on boot
REBOOT ##### Yoinked Tweaks #####
Disable systemd coredums
Lower journald log limit
echo "SystemMaxUse=32M" >> /etc/systemd/journald.confPolkit
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf;yay
sudo pacman -S --needed base-devel;sudo sed -i "s/#MAKEFLAGS=\"-j2\"/MAKEFLAGS=\"-j\${nproc}\"/" /etc/makepkg.confsudo sed -i 's/^OPTIONS=.*/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)/' /etc/makepkg.confcd /tmp
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si --noconfirm
yay -Y --devel --answerclean a --answerdiff n --removemake --cleanafter --saveUse yay -Y --gendb to generate a development package
database for *-git packages that were installed without yay. This
command should only be run once.
Source: https://github.com/Jguer/yay
sudo nano /etc/makepkg.conf
PKGDEST=/home/packagessudo systemctl --full --force edit repo.path
sudo systemctl --user --full --force edit repo.service
[Service]
Type=oneshot
ExecStartPre=/usr/bin/logger Start - Local AUR Repo Update
ExecStart=/bin/sh -c '/usr/bin/repo-add --nocolor --quiet --remove --prevent-downgrade /home/packages/bobs.db.tar.gz /home/packages/*.pkg.tar.zst'
ExecStartPost=/usr/bin/logger Done - Local AUR Repo Update
[Install]
WantedBy=multi-user.targetagetty
Various agetty tricks to make booting into a system smoother
Make an override for getty@tty.service with the following
# /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \u' --skip-login --nonewline --noissue --noclear --autologin vociferous - $TERM#$HOME/.bashrc snippet
export AUTOSTART=wayland
if [[ $AUTOSTART = "wayland" ]] && [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
/usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland
elif [[ $AUTOSTART = "x11" ]] && [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx -- -keeptty >~/.xorg.log 2>&1
fi
Last modified: Fri Nov 28 02:01:56 2025