Reinstalling Arch Linux

Published on 2025-12-15 by Kevin Zarate


“I use Arch BTW”

Oh, you’re using Windows? That’s… unfortunate. I mean, I guess it’s fine for people who don’t really care about controlling their system. And macOS? Bro, you literally paid for UNIX with a pretty UI slapped on it. But hey, I’m sure you really needed those rounded corners and animations. But me? I use Arch, by the way. Yeah, it’s a bit more sophisticated, something you probably wouldn’t understand unless you’ve experienced it.

Ok, I’m doing being a fat neckbeard. I’ve been using Linux since sophomore year in high school. I originally had a dual boot set up going on a single drive, but Windows 10 decided to kill itself so Manjaro’s ext4 partition got to cannibalize that hard drive space. Picture of Fallout: New Vegas loaded onto gaming computer running Linux

This is the only picture I have from that time

It started out with some techno schizo privacy larp. I did not want Bill Gates to know about my Rena Andou addiction. That plus Louis Rossmann actually got me interested in digital privacy and rights. Eventually I migrated from Manjaro to EndeavourOS due to various issues.

  • Delaying packages causes instability issues
  • Manjaro let their SSL certificates expire not once, not twice, not thrice, but four times.
    • They told uses to change their clocks to access their website, very unprofessional and embarassing
  • They DOSSed the Arch User Repository by accidents from users browsing the AUR through the Pamac package manager
  • Funding and leadership issues
    • Apparently most of the development was done by one dude who hates his business managers
    • Broke btw

I will cite no sources besides telling any poor soul reading this to google it themselves. Random depenency issues pushed to EndeavourOS, which I consider to be Arch with a GUI installer and shall make no research to change my beliefs. Then Arch a few months because I wanted to join the crowd.

Linux x Windows BDSM

I have to admit, I used the archinstall menu. After my brother got into some legal troubles, I took the time to back up my /home directory and reinstall my operating system The Arch Way. I wanted to use BTRFS for snapshot support, put my /home directory on a seperate hard drive from my /boot SDD, and LUKS to encrypt my partitions. I unfortunately suck at storytelling so I’m just going to paste commands and maybe what they do. My site, my rules.

Parition the disks for a 512M EFI system and a Linux filesystem:

cfdisk /dev/nvme0n1
cfdisk /dev/sda

Encrypt and open the Root Partition:

cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptroot
cryptsetup luksFormat /dev/sda1
cryptsetup open /dev/sda1 crypthome

Format and create subvolumes for BTRFS (idk what that second part does)

mount /dev/mapper/cryptroot /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@var
btrfs subvolume create /mnt/@snapshots
umount /mnt

Mounting and installing Arch

mount -o noatime,compress=zstd,subvol=@ /dev/mapper/cryptroot /mnt
mkdir -p /mnt/home /mnt/boot /mnt/var /mnt/.snapshots
mount -o noatime,compress=zstd /dev/mapper/crypthome /mnt/home
mount -o noatime,compress=zstd,subvol=@var /dev/mapper/cryptroot /mnt/var
mount -o noatime,compress=zstd,subvol=@snapshots /dev/mapper/cryptroot /mnt/.snapshots
mount /dev/nvme0n1p1 /mnt/boot
pacstrap /mnt base linux linux-firmware vim git networkmanager btrfs-progs amd-ucode (or intel-ucode) efibootmgr grub base-devel nano
genfstab -U /mnt >> /mnt/etc/fstab

Entering the System

arch-chroot /mnt
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc
echo "<Computer Name>" > /etc/hostname
vim /etc/locale.gen # uncomment (remove #) from en_US.UTF-8 UTF-8
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
nano /etc/mkinitcpio.conf # Change the HOOKS line to HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
mkinitcpio -P
passwd
useradd -m -G wheel -s /bin/bash kevinz
passwd kevinz
EDITOR=vim visudo # uncomment the line %wheel ALL=(ALL:ALL) ALL.

Bootloader hell

blkid /dev/nvme0n1p2
nano /etc/default/grub
cryptdevice=UUID=YOUR_UUID_HERE:cryptroot root=/dev/mapper/cryptroot
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S xorg pipewire pipewire-pulse wireplumber
pacman -S plasma-meta konsole dolphin sddm
pacman -S hyprland kitty waybar wofi
systemctl enable NetworkManager
systemctl enable sddm

mkdir /etc/luks-keys
dd if=/dev/urandom of=/etc/luks-keys/home.key bs=512 count=1
chmod 400 /etc/luks-keys/home.key

cryptsetup luksAddKey /dev/sda1 /etc/luks-keys/home.key

nano /etc/crypttab

# Add this line, it unlocks the /home partition after after booting
crypthome  /dev/sda1  /etc/luks-keys/home.key

# Exit Chroot
exit
umount -R /mnt
reboot

This should hopefully boot into the GRUB menu and ask for a password for booting. Once you get to a login screen you can select between hyprland and Plasma. This is not a guide, this might even work. I don’t feel like opening up a virtual machine to double check if I missed anything. I use Arch because I do whatever I want to customize it since it’s rather barebones and the Arch Wiki can answer any consequences I deserve.