Arch Install Guide
This streamlined guide is customized for your Mini ITX build with:
- LVM partitioning (96GB root, 1TB home, remaining space available for future use)
- ZFS support for external drives
- Linux LTS kernel for stability
- Light KDE installation
- Steam gaming support with multilib (i386 architecture)
1. Create Installation Media
- Download latest Arch ISO from archlinux.org
- Use
ddor Etcher to create bootable USB
2. Boot from USB
- Enter BIOS (Del or F2 at startup)
- Set boot priority to USB device
- Disable Secure Boot
3. Initial Setup
# Verify internet connectivity
ping -c 3 archlinux.org
# Update system clock
timedatectl set-ntp true
4. Partition NVMe Drive
# List disks to identify your SK Hynix drive
lsblk
# Launch partitioning tool
fdisk /dev/nvme0n1
# Create partitions:
/dev/nvme0n1p1: EFI partition - 512MB (type: EFI System)
/dev/nvme0n1p2: Boot partition - 1GB (type: Linux filesystem)
/dev/nvme0n1p3: LVM partition - Remaining space (type: Linux LVM)
5. Set Up LVM
# Create physical volume
pvcreate /dev/nvme0n1p3
# Create volume group (replace "vg0" with desired name)
vgcreate vg0 /dev/nvme0n1p3
# Create logical volumes:
# 96GB for root
lvcreate -L 96G vg0 -n root
# 1TB for home
lvcreate -L 1024G vg0 -n home
# Leave remaining space unallocated for future use
# You can check available space with:
vgs
6. Format Partitions
# Format EFI partition
mkfs.fat -F32 /dev/nvme0n1p1
# Format boot partition
mkfs.ext4 /dev/nvme0n1p2
# Format root partition
mkfs.ext4 /dev/vg0/root
# Format home partition
mkfs.ext4 /dev/vg0/home
7. Mount Partitions
# Mount root
mount /dev/vg0/root /mnt
# Create mount points
mkdir -p /mnt/boot
mkdir -p /mnt/boot/efi
mkdir -p /mnt/home
# Mount other partitions
mount /dev/nvme0n1p2 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
mount /dev/vg0/home /mnt/home
8. Install Base System with LTS Kernel
# Install essential packages with LTS kernel
pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware amd-ucode vim lvm2
9. Generate fstab
genfstab -U /mnt >> /mnt/etc/fstab
10. Chroot into New System
arch-chroot /mnt
11. Basic System Configuration
# Set timezone (replace with your timezone)
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc
# Configure locale
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
# Set hostname
echo "your-hostname" > /etc/hostname
# Configure hosts file
echo "127.0.0.1 localhost" > /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 your-hostname.localdomain your-hostname" >> /etc/hosts
12. Configure mkinitcpio for LVM
# Edit mkinitcpio.conf
vim /etc/mkinitcpio.conf
# Add 'lvm2' to HOOKS between 'block' and 'filesystems':
# HOOKS=(base udev ... block lvm2 filesystems ...)
# Regenerate initramfs
mkinitcpio -P
13. Install Network Manager and Other Essential Packages
pacman -S networkmanager grub efibootmgr os-prober
pacman -S iwd wireless_tools wpa_supplicant dialog
14. Enable Network Services
systemctl enable NetworkManager
15. Install GRUB
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
16. Set Root Password
passwd
17. Create User
useradd -m -G wheel -s /bin/bash yourusername
passwd yourusername
18. Configure sudo
EDITOR=vim visudo
# Uncomment %wheel ALL=(ALL) ALL
19. AMD-Specific Packages
pacman -S amd-ucode mesa vulkan-radeon libva-mesa-driver mesa-vdpau
20. Enable Multilib Repository for Steam/i386 Support
# Edit pacman.conf
vim /etc/pacman.conf
# Uncomment these lines:
# [multilib]
# Include = /etc/pacman.d/mirrorlist
# Update package database
pacman -Sy
21. Install Light KDE
# Install X.org
pacman -S xorg xorg-server
# Install minimal KDE Plasma
pacman -S plasma-desktop sddm
# Install minimal KDE applications
pacman -S dolphin konsole kate kwrite plasma-pa plasma-nm
# Enable display manager
systemctl enable sddm.service
22. Install ZFS Support (archzfs repository) didn’t really work, installed zfs-dkms once rebooted into system
# Install development tools
pacman -S git
# Install the archzfs repository key
pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
# Add the archzfs repository
echo -e '\n[archzfs]\nServer = https://archzfs.com/$repo/$arch' >> /etc/pacman.conf
# Update database and install ZFS packages
pacman -Sy
pacman -S zfs-linux-lts zfs-utils
# Enable ZFS services
systemctl enable zfs.target
systemctl enable zfs-import-cache.service
systemctl enable zfs-mount.service
systemctl enable zfs-import.target
23. Install Steam and Gaming Support
# Install Steam and gaming dependencies
pacman -S steam ttf-liberation lib32-vulkan-radeon lib32-mesa
24. Reboot and Enjoy
exit
umount -R /mnt
reboot
25. Post-Install Setup
After first boot:
# Enable SSD TRIM
systemctl enable fstrim.timer
# Optimize for your Ryzen 7 7700X
pacman -S cpupower
systemctl enable cpupower
# Generate ZFS cache for faster imports
zpool set cachefile=/etc/zfs/zpool.cache [your-zpool-name]
Expanding or Creating New LVM Volumes Later
# Check available space in your volume group
vgs
# Create a new logical volume
lvcreate -L SIZE_IN_GB vg0 -n volumename
# Or extend an existing logical volume
lvextend -L +SIZE_TO_ADD /dev/mapper/volumename
# For example, to add 50GB to root:
lvextend -L +32G /dev/mapper/vg0-root
# After extending, resize the filesystem
resize2fs /dev/mapper/vg0-volumename
# Or if you want to use all remaining space:
lvextend -l +100%FREE vg0/volumename
resize2fs /dev/vg0/volumename
Mounting ZFS External Drives
# Import a ZFS pool from an external drive
zpool import -a
# Or specify a specific pool
zpool import [pool-name]
# If needed, create a mountpoint
mkdir -p /mnt/external
# Mount a ZFS dataset
zfs mount [dataset-name]
# Or set a custom mountpoint
zfs set mountpoint=/mnt/external [dataset-name]
Additional Recommended Packages
# Install Yay AUR helper
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
# Performance monitoring
pacman -S htop nvme-cli
# AMD-specific tools
pacman -S ryzen-controller
Note:
As of 2025-12-16 gamehenge is on intel nuc, ZFS remains installed on arch linux but unused.