My Arch Linux Journey

Motivation

I have dinked around with computers for a long time. My preferred daily driver is a Mac (I've used Macs since 1991), and I've used Windows at work a lot throughout the years, but I've always had a latent interest in Linux. I've installed Ubuntu on several occasions in the past to play around with something, but I typically ended up back on my Mac because Linux didn't offer me any practical advantages.

I've recently noticed a surge in Linux discussion in the corners of the internet I tend to observe, and saw a lot of it was about Arch Linux. Arch is not new, but my impression was that it was primarily for folks that want to kit-bash their own system, so I assumed it was beyond my capabilities. However, my interest was piqued, so I started poking around and almost immediately stumbled upon Omarchy. Neat. This seemed to fit right into this whole renaissance of “old” technology I've also noticed has been gaining momentum (for example, VFC Midwest).

As a quick aside, I used to spend a lot more time doing hobbyist-type projects on computers, but because I work in technology, I slowly began to drift away from computing for fun. I estimate I'd entirely dismissed computers as a hobby for at least the last five years. Some of it was due to work fatigue, and some was the stark realization that the tech world was moving faster than I could ever keep up. Why bother? Poor attitude, I know, but I think this “hiatus” put me in a good position to realize a couple of things:

  1. I don't need to be a 10x developer to find value in even the smallest of computing projects.
  2. There's still a lot of cool stuff that can be done with old computers.

I have to thank a friend of mine with an extensive vintage computer collection for inspiration—this man attends a Tandy-specific computing con every year, if that tells you anything.

Anyway, after I got over the googly-eyed wonder of Omarchy, I realized I didn't want another plug-and-play solution that I'd spend an afternoon setting up and never use again. I wanted to really learn. That's when I decided to go with Arch.

Below is a summary of the steps I took to get it installed on my particular system. There was a lot of trial and error, but the process was surprisingly smooth. I'm still chipping away at it, so while I have a functional system, I'm still figuring out a good workflow and getting various tools installed to improve the UX.

Setup

I started with the Arch Installation Guide, which is generally the best resource to get through the installation.

  1. Downloaded the Arch ISO.
  2. Created a bootable USB flash drive with Rufus on Windows.
  3. Since my UEFI/BIOS wasn't cooperating with an on-the-fly boot disk selection, I set boot priority in the BIOS to the flash drive first.
  4. Pinged google.com to make sure the network was working (amazingly, it was).
  5. Partitioned the dedicated drive, using fdisk /dev/the_disk_to_be_partitioned following the recommended scheme (see Table 1).
  6. Formatted
    /
    and
    /boot
    with mkfs.ext4 /dev/partition_name.
  7. Formatted swap with mkswap /dev/swap_partition.
  8. Mounted the volumes, e.g. mount /dev/root_partition /mnt.
  9. Enabled swap, e.g. swapon /dev/swap_partition.
Mount Point Partition Partition Type Suggested Size
/boot
/dev/efi_system_partition
EFI system partition 1 GiB
[SWAP]
/dev/swap_partition
Linux swap At least 4 GiB
/
/dev/root_partition
Linux x86-64 root (/) Remainder of the device. At least 23–32 GiB.

My drive was called “sda”, so I used:

Installation

  1. Installed base software with pacstrap: pacstrap -K /mnt base linux linux-firmware nano amd-ucode fsck man-db man-info
  2. I went through the config steps, but I think I forgot to generate the
    fstab
    or I did something wrong. I'll mention this later.
  3. Installed GRUB as a boot loader: grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB. I read it doesn't play nicely with Windows (and in fact, it doesn’t recognize my Windows disk for some reason yet), but I’ve used it before so decided to use it again.

Launch

  1. At this point, I rebooted, but because I didn't set up GRUB to use secure boot, I had to disable it in the UEFI/BIOS. The good news is that Arch booted successfully. There were two bits of bad news:
    1. The boot seemed unusually slow.
    2. I couldn’t connect to the internet.
  2. First to tackle the internet issue because I wouldn't be able to install anything with pacman otherwise (aside from using pacstrap). Fortunately, I found this: https://linuxvox.com/blog/arch-linux-network-ip/. I booted off USB, installed networkmanager with pacstrap, and then the network config was trivial:
  3. Next, I installed zsh, and found this nice little guide to set the default shell and install PowerLevel10k: https://davidtsadler.com/posts/arch/2020-09-07/installing-zsh-and-powerlevel10k-on-arch-linux/.
  4. I was also interested in dwm from suckless.org after watching a lot of Bread on Penguins, and followed another guide from the same author to get it, dmenu, and st installed: https://davidtsadler.com/posts/arch/2020-08-17/installing-st-dmenu-dwm-in-arch-linux/.
  5. Next, I tackled the slow boot issue. Arch is configured to quiet boot by default so I had no idea what might be happening. Fortunately, I found this useful thread: https://bbs.archlinux.org/viewtopic.php?id=308506. My problem was exactly the same as the OP's, so fixing the swap partition's UUID in the
    fstab
    was the key. This is why I'm not sure whether I configured this properly during installation.
  6. After that, I installed qutebrowser, again following the lead of Bread on Penguins.
  7. Set up dual monitors using xrandr: xrandr --output DP-1 --primary --auto --output DP-3 --auto --right-of DP-1.

†Note: to be fair, I did try editing some network config files prior to this following some instructions on a site I didn't keep notes on so I can't reference it here. It's possible something I did there helped, but nothing worked until I got NetworkManager installed and enabled.

More to come...