Reinstalling Arch Linux for 2021

A short record on reinstalling Arch Linux on my computer, while preparing for the new year.

Storage

This time I'm going full BTRFS. I have always preferred LVM, because I wanted to passthrough thin-provisioned LVs to my VMs for the best possible performance. These days, I have a dedicated SSD for VMs and massive background jobs, so I can dedicate my entire NVMe SSD for system and home.

The drive curerntly has 2 partitions: EFI and BTRFS.

The BTRFS partition has two subvols: @ and @home. I'm considering running snapper for automatic snapshot, but not an urgent issue.

No swap for now. I'm considering using swap files, but 32GB of RAM has been enough for me.

Installing

Easy:

pacstrap base base-devel linux-lts amd-ucode nvidia-lts plasma-meta sudo gvim

Notably, I use LTS kernel, because I also have to install ZFS module, which is managed outside main repository - which has slower release cycle. Upgrading kernel becomes a major PITA in this case.

As always, KDE is my main desktop environment.

Basic Configuration

I always write down a script while pacstrap is busy working. Here's the one that I used this time.

All I have to do is:

  1. genfstab -U /mnt >> /mnt/etc/fstab
  2. Setup bootloader (See wiki. Too long)

First Boot

The following is a summary of my shell history:

systemctl enable --now NetworkManager

ln -s vim /bin/vi

useradd -m eon
passwd eon
visudo          # allow eon

pacman -S \
  tmux man-db bash-completion p7zip git \
  noto-fonts-cjk noto-fonts-emoji \
  konsole dolphin dolphin-plugins okular ark filelight kate \
    yakuake gwenview spectacle ark \
  packagekit-qt5 qt5-imageformats kimageformats \
    kdegraphics-thumbnailers ffmpegthumbs \
  firefox chromium falkon \
  xdg-user-dirs \
  fcitx-qt5 fcitx-hangul fcitx-mozc kcm-fcitx \
  kvantum-qt5

systemctl enable --now sddm

This gives me a working desktop environment. Maybe I should install all these packages during pacstrap, but I can't find any easy way to remember all these packages.

ZFS

I use archzfs repository.

TODOs

  • snapper - btrfs auto-snapshot
  • reflector - auto-update mirror list every day or every few hours
  • qemu - I really should cover my custom launcher script in this log...