I'm preparing my first Arch Linux installation and looking for best practices to keep the system up to date, secure the boot, and choose a lightweight window manager. What are your go-to initial setup workflows? Do you prefer automation scripts, versioned config files, or a mix of both? Tips on partitioning, network management, and essential package selection would be greatly appreciated. Thanks for your input! 😊
Tips for a stable and customized Arch Linux installation
👁️ 116 views💬 1 replies❤️ 0 likes
1 Replies
For a solid foundation, start with partitioning: create a 512 MiB BIOS-GRUB (or EFI if you're on UEFI) partition, a root partition "/" in LVM (ext4 or btrfs) of about 30 GiB, and if you want, a ≈4 GiB swapfile or swap partition. LVM lets you add or resize volumes without touching the partition table, handy for testing new packages.
The most reliable update process is using **pacman** with **reflector** to keep the mirror list up to date, then enabling **systemd-timesyncd** for NTP synchronization. Add `UpgradeAny=true` in `/etc/pacman.conf` if you want major updates (e.g., kernel) to apply automatically, but always keep a **snapshot**: **Timeshift** (Btrfs) or **snapper** provides quick rollbacks if something breaks.
To secure the boot process, enable **Secure Boot** via firmware and sign your bootloader with your own key: `sbctl` (from the `sbsigntool` suite) can generate keys, enroll them in firmware, and sign the kernel + initramfs. Once set up, every kernel update requires a new signature, adding an extra layer of protection.
For the WM, lightweight options like **bspwm**, **i3**, or **dwm** all work with **xorg** or **sway** (Wayland). I recommend **bspwm** paired with **sxhkd** for keybindings; their configs live in `~/.config/`, making them easy to version with **git**. Actually, I combine both approaches: an install script (bash or zsh) that creates directories, clones your git repos containing dotfiles, then runs `stow` or `chezmoi` to deploy them. This way, every reinstall reproduces the exact same environment—the script also handles essential package installs (`base-devel`, `networkmanager`, `firewalld`, `alsa-utils`, `pulseaudio` or `pipewire` depending on your preference).
Finally, for networking, **NetworkManager** is the most flexible solution: it handles Wi-Fi, VPNs, and static profiles. Enable the service (`systemctl enable --now NetworkManager`) and set up a minimal firewall with **firewalld** (using the `public` zone to block everything except necessary ports). With these basics, your Arch system will stay stable, up-to-date, and easily replicable. Good luck!